JS阮一峰闭包讲解的问题
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
console.log("没有定义全局变量的",object.getNameFunc()());//The Window
// 在执行时this属于全局域,因此结果是the window
这里的getNameFunc()()里的是什么意思?有谁能讲解一下吗? getNameFunc这是一个函数,因为无参数,所以用空括号表示调用,因为它的返回值也是一个函数,并无参数,所以再加一对空括号表示调用 本帖最后由 小仙 于 2021-11-19 01:13 编辑
这道题应该属于this指向问题。this的指向只与函数被调用的位置有关系。应为object.getNameFunc()()可以看成const getName = object.getNameFunv(); getName()。这里的this指向window是因为该函数在全局作用域下被调用,属于默认绑定到window对象,这里this指向window是建立在非严格模式下,严格模式下会指向undefined。 小仙 发表于 2021-11-19 00:52
这道题应该属于this指向问题。this的指向只与函数被调用的位置有关系。应为object.getNameFunc()()可以看成 ...
thankyou
页:
[1]