我有以下對象:使用呼叫方法來引用在對象中的屬性 - JavaScript的
myObject = {
color: "yellow",
age: 23,
nationality: "usa",
getAge: function(){
var age = 33;
alert(age);
}
}
我可以調用getAge()
方法
myObject.getAge();
,我會在彈出得到33 -向上。
我想通過更改對象此引用在警告框中獲得23。我想類似下面的
myObject.getAge.call(this);
我的理解是,通過傳遞這給調用方法,我改變的這參考在getAge()
方法到的myObject
,然後應該允許警告框返回23.不幸的是,結果仍然是33.
如何更改此參考myObject
?
不改變'getAge',你根本無法。 「age」將始終引用盡可能小的範圍,這將始終是本地範圍。當查理布朗在他的回答中訪問'this.age'時,情況就不同了 - 這實際上允許切換範圍。但是,然後局部變量'var age'將不再工作。 –
_「如何將此引用更改爲myObject的引用?」_ - 您現有的帶有'myObject.getAge()'_already_的示例將'this'設置爲'myObject'。你需要改變你的函數來使用'this.age',而不是在函數中使用局部變量。 – nnnnnn