如何访问下面的“a”?
var test = function () {
return {
'a' : 1,
'b' : this.a + 1 //doesn't work
};
};
答案 0 :(得分:8)
你不能这样做。当你正在构建一个对象时(这就是你使用花括号实际做的事情),在构造它之前无法访问它的属性。
var test = function () {
var o = {};
o['a'] = 1;
o['b'] = o['a'] + 1;
return o;
};
答案 1 :(得分:4)
var t = function ()
{
return new x();
};
var x = function ()
{
this.a = 1;
this.b = this.a + 1; //works
}
抽象图层
已编辑格式化,并注意到这是从OLN转移
答案 2 :(得分:1)
您不能使用Object Literal Notion不支持此访问
答案 3 :(得分:0)
var test = function () {
//private members
var a = 1;
var b = a + 1;
//public interface
return {
geta : function () {
return a;
},
getb : function () {
return b;
}
}
}();