因此,我已经阅读了stackoverflow的内容。在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";
覆盖。关于javascript - ES6类属性定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35468538/