var ag = (function(){
function update(at){
console.log('at::'+at);
}
return {hike:function(){update(2);}}
})();
このメソッドでは、参照(ag.hike();)を通じて内部関数hike()にアクセスできます。上記の例ではIIFEの内部関数のプロパティを読み取ることができませんか?
var ag = (function(){
function update(at){
console.log('at::'+at);
}
return update(2);
})();
私も参照介して同じ内側update()メソッド(ag.update(2)またはag.updateを())にアクセスすることができません。
私はIIFEの内部特性を読み取ることができないことを読んだ。しかし、最初のケースでは私はアクセスすることができ、2番目のケースではアクセスできません。
上記の2つの例の違いは何ですか? なぜこれらの2つの異なる動作ですか? 私を説明してください。私の英語には申し訳ありません。
最初のスニペットでは、メソッドがあり、これはIIFEで閉じられているobjcetを返しています。 2番目のスニペットではクロージャはありません。IIFEはちょうど値を返します(実際には未定義です)。 – Teemu
'関数の更新(at)'は未定義を返します。返す 'return update(2);' ...したがって 'ag === undefined' –
ありがとうございますが、私はどこかの内部関数をクロージャにすることができます。だから私たちは閉鎖を通じてアクセスすることはできません。私が間違っている場合は申し訳ありません –