DrS*_*ove 8 javascript this iife
在以下构造中:
(function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
Run Code Online (Sandbox Code Playgroud)
为什么要this引用window对象?IIFE中的所有内容是否应与全球范围隔离?是x和y函数也是window全局对象的属性?
而且,即使我var h = ...在开头使用put :
var h = (function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
Run Code Online (Sandbox Code Playgroud)
this仍然指的是窗口对象 - 我可以show()从全局范围调用!怎么会?
Poi*_*nty 10
全局上下文(window在浏览器中)是在this没有其他值可用时获取的值.
您的局部变量是本地变量(即不是属性window).它们在函数内声明var.
添加var h = (function(){...没有区别的原因是因为你调用函数的方式.函数引用不是对象的属性值(如something.func()),也不用.call()or 调用它.apply(),因此它引用了global(window)对象.这就是定义语言行为的方式.
| 归档时间: |
|
| 查看次数: |
2804 次 |
| 最近记录: |