this对象是在运行时基于函数的执行环境绑定的。
在全局函数中,this等于window;当函数被某对象调用时,this为该对象。
匿名函数的执行环境有全局性,其this对象通常指window。通过call()或spply()改变函数执行环境时,this指向其对象。
①每个函数在被调用时,都会自动取得两个特殊变量:this和argument。内部函数在搜索这两个变量时,只会搜索到期活动对象为止,永远不可能访问外部函数的这两个变量。
不过将外部作用域的this对象保存在一个闭包能访问的变量里,就可让闭包访问该对象。
复制代码 代码如下:
闭包 访问外部函数的this对象
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()()); //"MyObject"
包围函数的argument对象 也可通过此方法被闭包访问。
5、函数声明 转换为 函数表达式
JavaScript将function关键字昨晚函数声明的开始,但函数声明后面不能跟圆括号,所以function(){......}();会出错。
要将函数声明转换为函数表达式,需为函数声明加一对圆括号:
复制代码 代码如下:
(function(){
//块级作用域
})();
您可能感兴趣的文章: