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。