を発行します。生命維持のコンテキストには、次の構文で
(function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
はなぜthis
はwindow
オブジェクトを参照しますか? IIFE内のすべてをグローバルスコープから分離する必要がありますか? x
とy
は、window
グローバルオブジェクトのプロパティとしても機能しますか?
また、私が使用している場合でも先頭にvar h = ...
を置く:
var h = (function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
this
はまだウィンドウオブジェクトを参照する - 私はグローバルスコープからshow()
を呼び出すことができます!どうして?
有効なケースは、IIFE内の「this」をコールバックの作成に使用する別のオブジェクトに渡す必要がある場合です。 – AndroidDev