首页 > 解决方案 > 在没有构造函数的情况下将数据传递给 ES7 中的类

问题描述

我正在尝试使用新的 ES7 语法在不使用构造函数的情况下将属性传递给类。

我知道我们可以用构造函数传入这个:

class MyClass {
    constructor(pacman) {
        this.pacman = pacman;
    }
}
...
const myInstance = new MyClass({food:'........'});

但是我们如何使用 ES7 中的“无构造函数”语法来做到这一点?

失败代码:

class MyClass {
    static pacman; // undefined
    pacman = this.pacman; // undefined
    this.pacman = pacman; // Syntax error: unexpected token .
    pacman = this.pacman.bind(this); // Cannot read property 'bind' of undefined
}
...
const myInstance = new MyClass({food:'........'});

标签: javascriptclassecmascript-2016

解决方案


但是我们如何使用 ES7 中的“无构造函数”语法来做到这一点?

ES2016 中没有无构造函数语法。如果您参考仍然实验性的类字段提案:类字段仅适用于为每个实例使用相同值初始化的事物,它不能依赖于传递给构造函数的任何内容。这就是你需要的constructor。只有在那里您可以声明参数并使用它们来引用构造函数参数。


推荐阅读