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的时候才是定义的时候吗?
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,其实会根据作用域向上查找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
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
不存在什么时候定义一说,箭头函数仅仅只是不绑定this,也就在箭头函数内部不产生this
https://developer.mozilla.org...