请问构造函数中return一个新的对象,箭头函数的this为什么指向一个空对象呢?
function Person(){ var kk = {};
kk.num = 10;
kk.getValue = () => {
console.log(this)
}
return kk;
}
var p = new Person();
p.getValue()
// person {}
箭头函数的this不是定义的时候就确定吗?
这里定义的时候this应该指向person函数体吧,为什么会指向new的空对象呢
还是说new的时候才是定义的时候吗?
回答:
不存在什么时候定义一说,箭头函数仅仅只是不绑定this,也就在箭头函数内部不产生this
https://developer.mozilla.org...
回答:
如楼上所说,箭头函数中,并没有this,如果在箭头函数中,调用了this,其实会根据作用域向上查找this。
举个栗子
function Person(){ var kk = {};
kk.num = 10;
console.log(this.__proto__.constructor === Person)
const self = this
kk.getValue = () => {
console.log(this === self)
}
return kk;
}
var person = new Person() // -> true
person.getValue() // -> true
以上是 请问构造函数中return一个新的对象,箭头函数的this为什么指向一个空对象呢? 的全部内容, 来源链接: utcz.com/p/936854.html