標簽歸檔:Javascript 對象

揭開Javascript對象神秘的面紗

學習Javascript快四年了。因為最初是從實踐開始學的,真正系統的學習到了06年才開始。雖然學的時間夠長了,曾經經歷過兩次瓶頸,第一次就是JS的對象。在初級教程中,JavaScript創建對象的方法基本上都是function,而且網網一帶而過。所以如果只是買一本Javascript入門書開始學習JavaScript很容易遇到瓶頸。今天我寫這篇文章,算是幫幫比我還菜的菜鳥,快速掌握Javscript創建對象的方法吧。
首先來介紹一下在Javascript書籍上最常見的一中方式function方式
function 對象名() {
this.變量1=變量1的值;
this.變量2=變量2的值;
this.函數1= function() {
函數體
};
this.函數2= function() {
函數體
};
……;
}
說明:
(1)其內的變量或者函數前必需寫上this關鍵字;
(2)對象的內容與值以等號分隔,成對出現;
(3)包含的變量或者函數之間以分號分隔。
(4)函數需要寫在function(){}的大括號之內。
例子:

function miaoqiyuan() {
	this.name="苗啟源";
	this.nickname="飛貓,mqycn";
	this.homeurl=function() {
		alert("http://www.okfdzs1809.com");
	};
	this.gohome=function() {
		location.href="http://www.okfdzs1809.com";
	}
}

第二種:JSON方式
var 對象名 = {
變量1: 變量1的值,
變量2: 變量2的值,
函數1: function(){
函數體
},
函數2: function(){
函數體
},
……
};
說明:
(1)大括號內直接填寫變量或者函數;
(2)對象的內容與值以冒號分隔,成對出現;
(3)包含的變量或者函數之間以逗號分隔;
(4)函數需要寫在function(){}的大括號之內。
例子:

var miaoqiyuan = {
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
};

第三種:原型方式
var 對象名 = {};
對象名.prototype.變量1=變量1的值;
對象名.prototype.變量2=變量2的值;
對象名.prototype.函數1= function() {
函數體
};
對象名.prototype.函數2= function() {
函數體
};
……;
說明:
(1)初始對象體內可以不定義任何東西;
(2)在要定義的變量前加“對象名.prototype.”的格式;
(3)對象的內容與值以等號分隔,成對出現;
(4)包含的變量或者函數之間以分號分隔,也可以省去分號。
(5)函數需要寫在function(){}的大括號之內。

例子:

var data = {};
	data.prototype.name ="苗啟源";
	data.prototype.nickname ="mqycn,飛貓";
	data.prototype.homeurl = function() {
		alert("http://www.okfdzs1809.com");
	};
	data.prototype.gohome= function() {
		location.href="http://www.okfdzs1809.com";
	};

第四種為create方式,該方式利用了Prototype JavaScript組件庫,很少見有人用。
var 對象名 = Class.create();
Object.extend(對象名.prototype, {
變量1: 變量1的值,
變量1: 變量1的值,
函數1: function() {
函數體
},
函數2: function() {
函數體
},
……
}
);
說明:
(1)對象的創建使用了Prototype庫中的Class.create()函數;
(2)對象的內容使用Prototype庫中的Object.extend()函數來擴展;
(3)被擴展的對象在傳入Object.extend函數時一定要帶上prototype,
(4)擴展內容被大括號包含,其內與JSON方式的定義格式完全相同。
例子:

var data = Class.create();
Object.extend(dta.prototype, {
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
});

通過上面的四種方法就可以定義對象了,使用對象的方法比較簡單了:
var flycat = new miaoqiyuan();
這樣就創建了一個名為flycat的對象。
創建了對象,引用的方法有兩種,點號方式引用、數組方式引用。
這就很簡單了,flycat[“name”],flycat.name。
我學Javscript是從實踐開始的,沒有系統的學過。有些定義可能叫的不是很準確。歡迎大家與我討論。本文的原始地址為:http://www.okfdzs1809.com/p/javascript-object