javascript - 如何更改 JavaScript getter 的范围?

标签 javascript scope this getter

给定以下对象:

var myObj = {
    fname: 'John',
    lname: 'Doe',
    values: {
        get fullName() {
            return this.fname + ' ' + this.lname
        }
    }
};

尝试访问 myObj.values.fullName 时,返回 undefined undefined,因为 this 的上下文设置为 myObj .values,而不是 myObj

有办法改变吗?我尝试了我能想到的所有 bind 组合,但大多数时候这只会导致语法错误,因为 fullName 不是常规函数。

最佳答案

您只能通过 myObj.fnamemyObj.lname 访问父对象属性。

var myObj = {
    fname: 'John',
    lname: 'Doe',
    values: {
        get fullName() {
            return myObj.fname + ' ' + myObj.lname
        }
    }
};

关于javascript - 如何更改 JavaScript getter 的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956688/

相关文章:

javascript - 在鼠标悬停时向 jquery 事件添加延迟

python - Python中类的顶级属性存储在哪里

javascript - 将 'this' 传递给类 ecmascript 6 中的回调

php - 正确理解 PHP 中的作用域(与 Javascript 相比)

java - 在 Java 中使用 `this` 是不好的做法吗?

java - Java 中的构造函数问题

javascript - 使用索引访问表 tr

javascript - 如何只选择被单击的 "tr"元素?

javascript - 如何在 A-Frame 中离线使用库存字体?

c++ - 为什么我可以在更小的范围内重新定义一个 const?