javascript - 在没有构造函数的情况下将数据传递给 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:'........'});
解决方案
但是我们如何使用 ES7 中的“无构造函数”语法来做到这一点?
ES2016 中没有无构造函数语法。如果您参考仍然实验性的类字段提案:类字段仅适用于为每个实例使用相同值初始化的事物,它不能依赖于传递给构造函数的任何内容。这就是你需要的constructor
。只有在那里您可以声明参数并使用它们来引用构造函数参数。
推荐阅读
- angular - Angular Firebase 验证电子邮件/密码并使用 Google 签名
- eclipse - 什么是 ~/.m2 和 ~/.p2 文件夹,我可以删除它们吗?
- yii - 如何获取表单域的值并将其传递到另一个表单域
- terraform - Terraform:从列表中检索每个子网网关地址。GCP
- php - PHP中重定向链接中公共哈希的双向加密
- java - 如何在 springbatch 中对 MongoItemReader 进行单元测试?为什么向查询添加 Criteria 会使 MongoItemReader 注入的 bean 为空?
- c++ - 如何获取在 main() 函数中构造的类的创建对象?
- c++ - 在 char 数组中定位双精度数 (C++/ROOT)
- vba - 隐藏表单后如何保留表单的数据
- arraylist - 如何将 ArrayList 传递给构造函数?