JavaScript:在ES6中使用`this`和原型和箭头函数

时间:2016-12-02 13:46:18

标签: javascript ecmascript-6

我有一个简单的原型继承构造函数,我正在使用箭头函数。

app.Node = function (name, type) {
    this.name = name;
    this.type = type;
    this.children = [];
}

app.Node.prototype = {
    addChild: (child)=>{
        child._parent = this;
        this.children.push(child);
    },
    removeChild: (child)=>{
        this.children.forEach((item, i) => {
            if (item === child) {
                this.removeChildAtIndex(i);
            }
        });
    },
}

但是,由于this和箭头函数的性质,this的值在上述原型方法中为undefined。那么我能以这种方式使用箭头功能吗?除了使用普通的function函数之外,我无法弄清楚我需要改变什么。

1 个答案:

答案 0 :(得分:2)

  

我能以这种方式使用箭头功能吗?

没有。箭头函数从声明它们时捕获this的值。

  

除了使用普通的功能函数之外,我无法弄清楚我需要改变什么。

那样做。使用正确的工具完成工作。