下記のコードを実行すると、obj.val01とobj.val02()で返り値が違って来ます。
obj.val02()にはobj.setting()で設定した値が代入されるのは分かるのですが、何故obj.val01の値は変わらないのでしょうか。
自分でも調べたのですが、イマイチ納得のいく答えにたどり着けませんでした。
この辺りの解説が詳しく書かれているサイトなどを教えていただけると助かります。
lang
1var obj = (function(){ 2 3 var x = 1; 4 5 return { 6 val01: x, 7 val02:function(){ 8 return x; 9 }, 10 setting:function(y){ 11 x = y; 12 } 13 }; 14})(); 15 16 17obj.setting(10); 18 19console.log(obj.val01); // => 1 20console.log(obj.val02()); // => 10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/13 08:57