newJavaScript中的关键字在第一次遇到时会非常混乱,因为人们倾向于认为JavaScript不是面向对象的编程语言.
在以下构造中:
(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()从全局范围调用!怎么会?