如何以与检索 foo1.x 相同的方式检索 foo2.x?
var foo1 = {x: 4};
var foo2 = {x: function(){return addOne(foo1.x);}}
function addOne(var1){return (var1 + 1);}
alert(foo1.x);
alert(foo2.x()); // needs parentheses, but argument is never needed
如何以与检索 foo1.x 相同的方式检索 foo2.x?
var foo1 = {x: 4};
var foo2 = {x: function(){return addOne(foo1.x);}}
function addOne(var1){return (var1 + 1);}
alert(foo1.x);
alert(foo2.x()); // needs parentheses, but argument is never needed
看来你想要一个getter 函数:
var foo1 = {x: 4},
foo2 = {get x() { return foo1.x + 1; }};
foo2.x; // 5
foo1.x = 0;
foo2.x; // 1
foo2.x
是一个函数,所以需要加括号
我假设您想将该函数的结果foo2.x
存储在 中,而不是函数本身。
尝试以下操作:
function addOne(n) {
return n + 1;
}
var
foo1 = {
x: 4
},
foo2 = {
x: (function () {
return addOne(foo1.x);
}())
};
alert(foo1.x); // 4
alert(foo2.x); // 5
我已经foo2.x
用括号将函数包裹起来,并在它后面放了一对额外的括号来执行它。所以它不再是一个函数,而是函数的结果。