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
ゲッター関数が必要なようです:
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
を括弧で囲み、その後に括弧を追加して実行します。つまり、もはや関数ではなく、関数の結果です。