var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());
知道闭包是要在函数外部读取内部的变量,但是这个代码还是不咋理解啊= =
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
既然你提到了闭包,那你看看这段代码,自己先思考下,再运行,希望帮到你~
这是
this的引用问题……和闭包有什么关系………在方法调用模式中:
当一个函数保存为一个对象的属性时,这个函数是此对象的方法。此时,在方法中使用this指向的是当前这个对象
在函数调用模式中:
当一个函数并非作为一个对象的属性时,这个函数是全局函数。此时,在方法中使用this指向的是全局对象。
javascript的四种函数调用模式
《JavaScript语言精粹》中提到:this的值取决于调用的模式
个人总结,任意未被bind过的函数如果不直接以
obj.的形式并且不以call、apply的方式调用,函数体里的this都是指向全局对象。不知道理解的对不对。不过能解决你这问题。这道题是我的面试题。。。