JavaScript 對象
javascript 對象
對象是一種特殊的變量,它可以包含很多值。
這段代碼把多個值(porsche, 911, white)賦給名為 car 的變量:
var car = {type:"porsche", model:"911", color:"white"};
值以名稱:值對的方式來書寫(名稱和值由冒號分隔)。
javascript 對象是被命名值的容器。
1. 對象屬性
javascript 對象中的 名稱:值 被稱為屬性。
var person = {firstname:"bill", lastname:"gates", age:62, eyecolor:"blue"};
屬性 | 屬性值 |
---|---|
firstname | bill |
lastname | gates |
age | 62 |
eyecolor | blue |
2. 對象方法
對象也可以有方法。
方法是在對象上執(zhí)行的動作。
方法以函數(shù)定義被存儲在屬性中。
屬性 | 屬性值 |
---|---|
firstname | bill |
lastname | gates |
age | 62 |
eyecolor | blue |
fullname | function() {return this.firstname + " " + this.lastname;} |
方法是作為屬性來存儲的函數(shù)。
范例
var person = { firstname: "bill", lastname : "gates", id : 678, fullname : function() { return this.firstname + " " + this.lastname; } };
3. this 關(guān)鍵詞
在函數(shù)定義中,this 引用該函數(shù)的“擁有者”。
在上面的例子中,this 指的是“擁有” fullname 函數(shù)的 person 對象。
換言之,this.firstname 的意思是 this 對象的 firstname 屬性。
4. 對象定義
我們定義(創(chuàng)建)了一個 javascript 對象:
范例
var person = {firstname:"bill", lastname:"gates", age:62, eyecolor:"blue"};
空格和折行都是允許的。對象定義可橫跨多行:
范例
var person = { firstname:"bill", lastname:"gates", age:50, eyecolor:"blue" };
5. 訪問對象屬性
您能夠以兩種方式訪問屬性:
objectname.propertyname
或者
objectname["propertyname"]
例子 1
person.lastname;
例子 2
person["lastname"];
6. 訪問對象方法
您能夠通過如下語法訪問對象方法:
objectname.methodname()
范例
name = person.fullname();
如果您不使用 () 訪問 fullname 方法,則將返回函數(shù)定義:
范例
name = person.fullname;
方法實際上是以屬性值的形式存儲的函數(shù)定義。
7. 不要把字符串、數(shù)值和布爾值聲明為對象
如果通過關(guān)鍵詞 "new" 來聲明 javascript 變量,則該變量會被創(chuàng)建為對象:
var x = new string(); // 把 x 聲明為 string 對象 var y = new number(); // 把 y 聲明為 number 對象 var z = new boolean(); // 把 z 聲明為 boolean 對象
請避免字符串、數(shù)值或邏輯對象。他們會增加代碼的復雜性并降低執(zhí)行速度。