在没有构造函数的情况下将数据传递给 ES7 中的 class

Passing in data to class in ES7 without a constructor function

我正在尝试使用新的 ES7 语法将属性传递给 class,而不使用构造函数。

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

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

但是我们如何使用 ES7 中的 "constructorless" 语法来做到这一点?

失败代码:

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:'........'});

But how we do this with a "constructorless" syntax in ES7?

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