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
6 回答2.9k 阅读✓ 已解决
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
不存在什么时候定义一说,箭头函数仅仅只是不绑定this,也就在箭头函数内部不产生this
https://developer.mozilla.org...