【发布时间】:2015-09-17 09:09:46
【问题描述】:
我想像下面这样编写我的 Javascript 类。
class Option {
constructor() {
this.autoLoad = false;
}
constructor(key, value) {
this[key] = value;
}
constructor(key, value, autoLoad) {
this[key] = value;
this.autoLoad = autoLoad || false;
}
}
如果我们能以这种方式写出类,我认为会很好。 预计会发生:
var option1 = new Option(); // option1 = {autoLoad: false}
var option2 = new Option('foo', 'bar',); // option2 = {foo: 'bar'}
var option3 = new Option('foo', 'bar', false); // option3 = {foo: 'bar', autoLoad: false}
【问题讨论】:
-
“为什么不”通常是一个非常无用的问题。因为,嗯,它没有。许多语言没有,ES6 不是唯一的。
-
你不需要一个重载的构造函数。只需使用默认值声明
autoLoad。 -
method overloading in Javascript 的可能重复项(在
class中没有什么不同,除了多个定义是语法错误) -
因为 JavaScript 到目前为止还没有并且需要这样的概念(即重载)。为什么
constructor是个例外? -
几乎相同的问题:为什么 JavaScript 对象不允许您为一个键指定多个值?
标签: javascript class constructor ecmascript-6