javascript 中的 this

不管是直接引用function,还是实例化一个function,其返回的闭包函数里的this都是指向window

此时的that代表的是实例化的对象!
详细出处参考:http://www.jb51.net/article/26982.htm
<script type="text/javascript">
//在function中使用this之四
function a() {
alert(this == window);
var that = this;
var func = function() {
alert(this == window);
alert(that);
};
return func;
}
var b = a();
b();
var c = new a();
c();
</script>

另一个例子:

其实可以这样总结:在this所在的函数上下文中,如果这个函数不是以“方法”的形式被调用的话,那么这个this会指向window对象,否则会指向这个函数的拥有者。


var name = ‘hong‘
var obj = {
name: ‘ru‘,
getName: function(){
return function(){
return this.name;
};
}
}
alert(obj.getName()());

结果为 ‘hone‘;


var name = ‘hong‘
var obj = {
name: ‘ru‘,
getName: function(){
var that = this;
return function(){
return that.name;
};
}
}
alert(obj.getName()());

结果为:ru

详细出处参考:http://www.jb51.net/article/25050.htm

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。