var a=11
function test1(){
this.a=22;
let b=function(){
console.log(this.a);
};
b();
}
var x=new test1(); //11
这个函数我的理解是,this不是指向调用环境中值吗。所以b函数应该在test1里调用,应该是22才对啊...
请问是什么问题
var a=11
function test1(){
this.a=22;
let b=function(){
console.log(this.a);
};
b();
}
var x=new test1(); //11
这个函数我的理解是,this不是指向调用环境中值吗。所以b函数应该在test1里调用,应该是22才对啊...
请问是什么问题
this指向调用者或者window啊,换成箭头函数是你想要得样子
var a=11
function test1(){
this.a=22;
var b=()=>{
console.log(this.a);
};
b();
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
首先是new调用,所以第一个this指向new出来的对象,第二个this属于直接调用,指向全局变量window或者global
可以参考: https://segmentfault.com/a/11...