有一个关于this指向的问题
题:
var name='name';
var A={
name:'A',
sayHello:function(){
let s=()=>console.log(this.name);
return s
}
}
let sayHello=A.sayHello()
sayHello() //A
var B={
name:'B'
}
sayHello.call(B) //A
提问:
sayHello() //A
sayHello:function(){
let s=()=>console.log(this.name);
return s
}
这个输出A是因为函数中包含一个箭头函数,箭头函数中的this指向是由上级作用域的this值确定的,所以要输出A嘛?
为什么sayHello.call(B)输出的还是A?,call不是传入什么绑定什么嘛
还有一个题:
var name='Jay'
function Person(name){
this.name=name
console.log(this.name);
}
var a=Person('Tom') //Tom
console.log(name); //jay //正确答案:Tom
console.log(a); //tom //正确答案:undefined
var b=new Person('Michaek') //Michaek
console.log(b); //michaek //正确答案:Person{name:'Michaek'}
提问: console.log(name); 为什么输出的还是Tom?为啥不是全局的var name='Jay'?
console.log(a)为什么输出的是undefined?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星