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

posted @ 2014-02-10 21:56  好记性还真不如烂笔头  阅读(176)  评论(0编辑  收藏  举报