En la construcción siguiente:contexto IIFE emite
(function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
¿Por qué this
se refieren a window
objeto? ¿Debería aislarse todo lo que está dentro de IIFE del alcance global? ¿Son x
y y
funciones también propiedades del objeto global window
?
Además, incluso si uso var h = ...
poner al principio:
var h = (function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
this
todavía se refiere a objeto de ventana - Yo sólo puedo llamar show()
del ámbito mundial! ¿Cómo?
Un caso válido sería cuando necesita pasar "esto" dentro de un IIFE a otro objeto que lo usa para hacer devoluciones de llamada. – AndroidDev