JavaScript 對象方法
實例
var person = { firstName: "Bill", lastName : "Gates", id : 648, fullName : function() { return this.firstName + " " + this.lastName; } };
JavaScript 方法
JavaScript 方法是能夠在對象上執行的動作。
JavaScript 方法是包含函數定義的屬性。
屬性 | 值 |
---|---|
firstName | Bill |
lastName | Gates |
age | 62 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
方法是存儲為對象屬性的函數。
this 關鍵詞
在 JavaScript 中,被稱為 this
的事物,指的是擁有該 JavaScript 代碼的對象。
this
的值,在函數中使用時,是“擁有”該函數的對象。
請注意 this
并非變量。它是關鍵詞。您無法改變 this
的值。
訪問對象方法
請使用如下語法創建對象方法:
methodName : function() { 代碼行 }
請通過如下語法來訪問對象方法:
objectName.methodName()
您通常會把 fullName() 描述為 person 對象的方法,把 fullName 描述為屬性。
fullName 屬性在被通過 () 調用后會以函數形式執行。
此例訪問 person 對象的 fullName() 方法:
實例
name = person.fullName();
如果您訪問 fullName 屬性時沒有使用 (),則將返回函數定義:
實例
name = person.fullName;
使用內建方法
此例使用 String 對象的 toUpperCase()
方法,把文本轉換為大寫:
var message = "Hello world!"; var x = message.toUpperCase();
x 的值,在以上代碼執行后將是:
HELLO WORLD!
添加新的方法
向對象添加方法是在構造器函數內部完成的:
實例
function person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
changeName() 函數 name 的值賦給了 person 的 lastName 屬性。
現在您可以嘗試:
myMother.changeName("Jobs");
通過用 myMother “替代” this,JavaScript 清楚您指的是哪個 person。