在没有构造函数的情况下将数据传递给 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
的原因。只有在那里您可以声明参数并使用它们来引用构造函数参数。
我正在尝试使用新的 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
的原因。只有在那里您可以声明参数并使用它们来引用构造函数参数。