如何将常规方法转换为chrome中的箭头函数?

时间:2018-01-22 11:26:33

标签: javascript google-chrome methods arrow-functions

我将通过javascript为类创建示例代码。 我想实现使用箭头功能返回价格的方法。 在我写的代码下面,它可以工作。

class Product{
        constructor(name, weight, price){
            this._name = name;
            this._weight = weight;
            this._price = price;
        }

        //calculate = (weight) => (weight / 100) * _price;
        calculate(weight){
            return (weight / 100) * this._price;
        }
    }

    const product = new Product("fork", 100, 1690);
    alert( product.calculate(200) + "won");

但修改为

calculate = (weight) => (weight / 100) * _price;
/*
calculate(weight){
    return (weight / 100) * this._price;
}
*/

发生错误"未捕获的SyntaxError:意外的令牌="在铬。

为什么会出现这种错误?以及如何修改? 谢谢观看!!

1 个答案:

答案 0 :(得分:0)

箭头函数只是一个常规属性而不是方法,因此您不能像声明方法那样声明它。把它放在构造函数中:

constructor(name, weight, price){
    this._name = name;
    this._weight = weight;
    this._price = price;

    this.calculate = weight => weight / 100 * this._price;
}

如果您正在使用Babel,则可以将其声明为方法,但由于您的问题标有" Google Chrome"我认为你想要香草ES6。