javascript - 使用 Call 方法引用对象中的属性 - JavaScript

标签 javascript

我有以下对象:

myObject = {
    color: "yellow",
    age: 23,
    nationality: "usa",
    getAge: function(){
        var age = 33;
        alert(age);
    }
}

我可以调用getAge()方法

myObject.getAge();

我会在弹出窗口中得到 33。

我想通过更改对象 this 引用来在警报框中获取 23。我在想类似下面的事情

myObject.getAge.call(this);

我的理解是,通过将 this 传递给调用方法,我将 getAge() 方法中 this 的引用更改为myObject 的值,然后应该允许警报框返回 23。不幸的是,结果仍然是 33。

如何将 this 引用更改为 myObject 的引用?

最佳答案

myObject = {
    color: "yellow",
    age: 23,
    nationality: "usa",
    getAge: function(){
        alert(this.age);
    }
}
myObject.getAge();

使用构造函数可能会更好,因为 this 在那里被破坏了。请参阅有关 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();

关于javascript - 使用 Call 方法引用对象中的属性 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667945/

相关文章:

javascript - 我的水平菜单被我自己的图像隐藏了

javascript - 获取字符串的一部分到变量中

javascript - 在 youtube 视频开始之前显示自定义图片

javascript - 如何在 Node js中的jwt token 到期时自动执行休息调用

javascript - 更改 JavaScript 中的任何新传入元素

javascript - 在IOS中实现JS功能

javascript - 使用 Javascript 通过数组循环遍历数组

javascript - 函数内的 HTTP 请求不起作用

javascript - AngularJS 设置变量的最小值和最大值

javascript - 揭示模块模式 - 全局变量/初始化函数