obj.name 对象
obj.func
ƒ (){
let name = "变量";
return function(){
let name = "作用域";
return this.name;
}
}
调用func()()打印出来的是空,
这个涉及到this的指向,
this指向最终调用它的对象
这样写你应该明白了
var name = "window对象"
let obj = {
name:"对象",
func:function(){
let name = "变量";
return function(){
let name = "作用域";
console.log(this)
return this.name;
}
}
}
console.log(obj.name);
console.log(obj.func()());
js
的this
是谁调用就是谁
obj.func()()//相当于
var result = obj.func();
result();//这时候就是指向window 因为 result=window.result
//在举个例子
var obj = {
name:"名字",
func:function(){
console.log(this.name)
}
}
obj.func()//输出 "名字"
var result = obj.func;
result() //这时候this指向window
13 回答13.1k 阅读
7 回答2.3k 阅读
5 回答1.6k 阅读
5 回答1.9k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
直接obj.func()()的话返回undefined this指向window