Pie*_*apo 4 javascript constructor this arrow-functions
我已阅读关于 this 关键字的这段文字:https://bonsaiden.github.io/JavaScript-Garden/#function.this
在第一种情况下this指的是globalobjet,这看起来完全正常,因为当我们有一个箭头函数时,它会自动this与外部作用域中的函数绑定。
var obj = {
foo : () => console.log(this)
}
console.log(obj);
obj.foo()Run Code Online (Sandbox Code Playgroud)
但是,我无法解释以下行为:
function bar(){
this.foo = () => console.log(this)
}
var obj = new bar()
console.log(obj);
obj.foo()Run Code Online (Sandbox Code Playgroud)
现在,this指的是obj而不是global。这是为什么 ?在我看来,将new关键字与构造函数一起使用应该返回一个obj与第一个示例中的对象完全相同的对象。因此箭头函数应该有一个thiswhich 引用global而不是 to obj。您能向我解释一下第二种情况发生了什么吗?
| 归档时间: |
|
| 查看次数: |
6386 次 |
| 最近记录: |