如何让一个javascript对象的成员引用同一个对象的另一个成员?

Goj*_*e87 0 javascript jquery object

在javascript中定义对象时,是否有一种方法可以让该对象的成员访问同一对象的另一个成员的值?例如,如果我在下面定义(使用jquery)

var x = $.extend({}, {
  greeting: 'hello',
  message: this.greeting+' world'
});

alert(x.message);
Run Code Online (Sandbox Code Playgroud)

以上代码会发出警报undefined world.如何使其greeting在定义期间取值.在这种情况下,预期的输出是hello world.

Eri*_*ric 8

您可以使用属性:

var foo = {
    greeting: 'hello',
    get message() {
        return this.greeting+' world'
    }
};

console.log(foo.message);
foo.greeting = 'hi';
console.log(foo.message);
Run Code Online (Sandbox Code Playgroud)

虽然我不确定这些会如何与之互动 $.extend

在旧版浏览器中,您可以始终只创建message一个函数,而不是属性获取器

  • 这是一种很好的方法,但它不适用于旧的浏览器. (3认同)