ES6 类属性定义
ES6 Class Property Definition
所以我读过堆栈溢出。在 ES6 中,这是无效的:
class MyClass {
myProperty = "";
constructor() {
this.myProperty = "Hey";
}
}
但它在 ES7 中有效。
但是,这是否有效:
class MyClass {
setViewModel(viewModel) {
this.internalViewModel = viewModel;
}
get viewModel() { return this.internalViewModel }
}
在这里,在我实际设置之前,我还没有定义internalViewModel
。我希望如果你在打电话之前没有打电话给myClass.setViewModel(something)
myClass.viewModel
,你会得到undefined
从myClass.viewModel
回来。
这是对的吗?
如果你有这个ES7类,并且你试图访问这样的myProperty
myClass.myProperty
你会得到预期的"Hey"
吗?
这个 ES6 正确吗?
是的。
尽管不在构造函数中创建所有属性可能被认为是一种不好的做法。
如果你有这个ES7类,并且你试图访问这样的
myProperty
myClass.myProperty
你会得到预期的"Hey"
吗?
是的,但请注意,myProperty
不是类,而是实例属性。
var myClass = new MyClass;
myClass.myProperty; // "Hey"
此外,无论如何,带有初始化器的实例字段声明是完全多余的,因为它会立即通过几乎等效的this.myProperty = "Hey";
被覆盖。
相关文章:
- 如何在选项卡上定义属性'的主窗口对象
- 设置自动分隔符的自定义属性
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 获取自定义属性的值
- 为Google闭包类定义属性的首选方式是什么
- 如何创建自定义属性以添加if.bind
- 动态更新Angular2指令中自定义属性的值
- 使用jQuery更改输入字段的自定义属性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 为什么在原型中定义属性被视为反模式
- 将对象作为参数传递后的未定义属性
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - 为什么克隆节点排除自定义属性
- 将自定义属性添加到 vuejs 组件
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- 正在设置自定义属性名称
- datalist获取选定的值和自定义属性(无事件)
- 在Javascript构造函数中定义属性的正确方式
- 如何使用javascript获取元素的自定义属性值