![](/img/trans.png)
[英]Javascript:Call Method By using A Reference Vs Direct Method Invocation
[英]Using Call Method to Reference a Property in an Object - 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 Unfortuntaely,結果仍然是33。
如何將此引用更改為myObject
引用?
myObject = {
color: "yellow",
age: 23,
nationality: "usa",
getAge: function(){
alert(this.age);
}
}
myObject.getAge();
使用構造函數可能會更好,因為它在那里被搞亂了。 查看如何在SO任何其他答案this
工作。
function person(){
this.color = "yellow";
this.age = 23;
this.nationality = "usa";
}
person.prototype.getAge = function(){
alert(this.age);
};
var p = new person();
p.getAge();
為什么不簡單地:
myObject = {
color: "yellow",
age: 23,
nationality: "usa"
}
myObject.getAge = function() { return myObject.age; };
您可以這樣做:
function getAge(){
alert(this.age)
}
myObject = {
color: "yellow",
age: 23,
nationality: "usa"
}
getAge(myObject) // Alerts undefined
getAge.call(myObject) // Alerts 23
這樣,您可以使用所有具有age屬性的對象。
這是一個有效的小提琴 ,也請檢查瀏覽器控制台
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.