ES6 Class 属性 定义
ES6 Class Property Definition
所以我已经阅读了 Whosebug。在 ES6 中这是无效的:
class MyClass {
myProperty = "";
constructor() {
this.myProperty = "Hey";
}
}
但是在ES7中有效
但是,这是否有效:
class MyClass {
setViewModel(viewModel) {
this.internalViewModel = viewModel;
}
get viewModel() { return this.internalViewModel }
}
这里我没有定义 internalViewModel
直到我真正设置它。我希望如果你在调用 myClass.viewModel
之前没有调用 myClass.setViewModel(something)
,你将从 myClass.viewModel
.
返回 undefined
这是正确的吗?
如果你有这个 ES7 class 并且你尝试像这样访问 myProperty
myClass.myProperty
你会得到预期的 "Hey"
吗?
Is this ES6 correct?
是的。
虽然不在构造函数中创建所有属性可能被认为是一种不好的做法。
If you have this ES7 class and you tried to access myProperty
like so myClass.myProperty
would you get the expected "Hey"
or not?
是的,但请注意 myProperty
不是 class 而是实例 属性。
var myClass = new MyClass;
myClass.myProperty; // "Hey"
此外,带有初始化程序的实例字段声明无论如何都是完全多余的,因为它会立即被近乎等效的 this.myProperty = "Hey";
.
覆盖
所以我已经阅读了 Whosebug。在 ES6 中这是无效的:
class MyClass {
myProperty = "";
constructor() {
this.myProperty = "Hey";
}
}
但是在ES7中有效
但是,这是否有效:
class MyClass {
setViewModel(viewModel) {
this.internalViewModel = viewModel;
}
get viewModel() { return this.internalViewModel }
}
这里我没有定义 internalViewModel
直到我真正设置它。我希望如果你在调用 myClass.viewModel
之前没有调用 myClass.setViewModel(something)
,你将从 myClass.viewModel
.
undefined
这是正确的吗?
如果你有这个 ES7 class 并且你尝试像这样访问 myProperty
myClass.myProperty
你会得到预期的 "Hey"
吗?
Is this ES6 correct?
是的。
虽然不在构造函数中创建所有属性可能被认为是一种不好的做法。
If you have this ES7 class and you tried to access
myProperty
like somyClass.myProperty
would you get the expected"Hey"
or not?
是的,但请注意 myProperty
不是 class 而是实例 属性。
var myClass = new MyClass;
myClass.myProperty; // "Hey"
此外,带有初始化程序的实例字段声明无论如何都是完全多余的,因为它会立即被近乎等效的 this.myProperty = "Hey";
.