2014-03-25 271 views
1

我现在有一个初始问题。我试图在创建对象的另一个属性时引用对象的属性。在JavaScript中的对象中访问对象内部的属性

例如:

var x = { 
    a1 : "a", 
    b2 : this.a1, 
     c : "c" 
} 

alert(x.a1); // Returns properly 
alert(x.b2); // Returns undefined. 

如果我努力使B2参考x.b2,它也不管用。任何人都可以将我指向正确的方向吗?

总而言之,我试图根据a1的值来决定b2的值,而不必从对象中再走一步。

这里有一个小提琴 - http://jsfiddle.net/fpG9h/

+1

不知道这是否会有所帮助,但修改它像http://jsfiddle.net/fpG9h/1/工作。 – hgoebl

回答

0

你是最绝对需要getters and setters。您可以定义他们这样

var obj = { 
    a1: "a", 
    get b2() { 
     return this.a1; 
    }, 
    set b2(value) { 
     this.a1 = value; 
    }, 
    c: "c" 
} 

console.log(obj.b2); // a 
obj.b2 = "bbb"; 
console.log(obj.b2); // bbb 
console.log(obj.a1); // bbb