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();
}
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
首先是new调用,所以第一个this指向new出来的对象,第二个this属于直接调用,指向全局变量window或者global
可以参考: https://segmentfault.com/a/11...