猿问

关于闭包里的this这个问题

var name='red';

var obj= {

name:"blue",

getName:function() {

return function(){

return this.name;

}

}

};

alert(obj.getName()());


为什么这个出来的是red 而不是blue,这个function不是在obj的下面吗,我有点迷糊, 希望有人解答这个问题  谢谢了


我是匿名
浏览 1189回答 1
1回答

MR帽子先生

首先 name red 是全局变量,运行alert(obj.getName()());的时候已经指向blue,但是this指向的是整个函数,所以this。name 指向全局变量。希望对你有帮助,祝你学习愉快!
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答