小编Pie*_*apo的帖子

箭头函数和构造函数内的 this

我已阅读关于 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。您能向我解释一下第二种情况发生了什么吗?

javascript constructor this arrow-functions

4
推荐指数
1
解决办法
6386
查看次数

如何防止添加重复的arraylist对象值?

我有一个问题,阻止将新对象添加到数组中,该数组具有与数组中对象的现有元素相同的 id 值。我的数组是这样的:

var arr = [
       {id:1, name:'Fabricio'},
       {id:2, name:'Leontina'},
       {id:3, name:'Rodrigo'}];
Run Code Online (Sandbox Code Playgroud)

如果我想添加这样的对象{id:2; name:'Evander'},由于 id 而无法完成。

javascript arrays ecmascript-6

1
推荐指数
1
解决办法
9967
查看次数