Javascript ecmascript 6使用类声明原型默认值的语法
在javascript中创建类时,可以通过访问函数的Javascript ecmascript 6使用类声明原型默认值的语法,javascript,ecmascript-6,Javascript,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" 如何使
原型
来设置默认值
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'
ES6没有类的属性声明,只有方法。这是对ES7的一个建议:@TbWill4321:但是它们不会创建原型属性