很多地方都说箭头函数的this在定义的时候就已经确定了。但是以下代码:
function People() {
say=()=>{
console.log(this)
}
say();
}
People(); // ==> window
new People(); // ==> People{}
第一个window可以理解,为什么第二个变成了people对象呢?不应该也是window吗?
很多地方都说箭头函数的this在定义的时候就已经确定了。但是以下代码:
function People() {
say=()=>{
console.log(this)
}
say();
}
People(); // ==> window
new People(); // ==> People{}
第一个window可以理解,为什么第二个变成了people对象呢?不应该也是window吗?
箭头函数中this和生成这个函数时的上下文有关,第一个window,第二个是people的实例对象,自己看
http://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0