簡體   English   中英

使用調用方法引用對象中的屬性-JavaScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM