javascript-使用Class声明原型默认值的ecmascript 6语法
作者:互联网
使用javascript创建类时,可以通过访问函数的原型来设置默认值.
function Foo() {
}
Foo.prototype.get = function() {
return this._value;
}
Foo.prototype._value = 'foo value';
var foo = new Foo();
console.log(foo.get()); // logs "foo value"
如何使用ecmascript 6类达到类似的效果?
// this doesn't work
class Bar {
get() {
return this._value;
}
// how to declare following default value properly?
_value: "bar value"
}
var bar = new Bar();
console.log(bar.get()); // logs undefined
解决方法:
类语法仅允许您定义方法,但仍仅使用.prototype对象创建构造函数.您可以完全按照ES5设置默认值:
// this does work
class Bar {
get() {
return this._value;
}
}
Bar.prototype._value = 'foo value';
var bar = new Bar();
console.log(bar.get()); // logs 'foo value'
当然,您可能只想创建和初始化实例属性:
// this does work
class Bar {
constructor() {
this._value = 'foo value';
}
get() {
return this._value;
}
}
var bar = new Bar();
console.log(bar.get()); // logs 'foo value'
标签:ecmascript-6,javascript 来源: https://codeday.me/bug/20191119/2035308.html