,類似下面:無法訪問的變量我要訪問的對象變量對象
var menuSetup = {
m : [100,200],
height: m[0], // m is not defined
}
var menuSetup = {
m : [100,200],
height: this.m[0], // I tried this, still failed
}
所以我可以訪問變量中的對象?
,類似下面:無法訪問的變量我要訪問的對象變量對象
var menuSetup = {
m : [100,200],
height: m[0], // m is not defined
}
var menuSetup = {
m : [100,200],
height: this.m[0], // I tried this, still failed
}
所以我可以訪問變量中的對象?
不幸的是,你不能這樣做。這是因爲menuSetup
的屬性尚未定義。例如,
var menuSetup = {
m: [100, 200],
height: menuSetup.m[0]
};
將通過(鉻)TypeError: Cannot read property 'm' of undefined
因爲menuSetup
只是不確定
只有兩個方法,我能想到的是(因爲它是由var
聲明懸掛),以
a)將m
保存爲變量之前。例如:
var m = [100, 200];
var menuSetup = {
m: m,
height: m[0]
}
b)使用方法而不是變量並執行它。
var menuSetup = {
m: [100, 200],
height: function() { return this.m[0]; }
}
然後,當你得到menuSetup.height
,你實際上做menuSetup.height()
。
不是你做的方式。在JavaScript中,創建同一個對象時不能引用另一個屬性,因爲該對象直到末尾關閉}
之後才存在。
您可以使用構造函數來代替,但可以在this類似問題的答案中解釋。
function MenuSetup() {
this.m = [100, 200];
this.height = this.m[0];
}
var menu = new MenuSetup();
console.log(menu.height) //100
你不能,就是這樣。 – Jon
不幸的是你不能這麼做...... – soktinpk
你可以在對象之外定義一個變量並在兩個地方使用它。 http://jsfiddle.net/5taBt/ –