2014-03-25 226 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