【问题标题】:javascript: different constructors for same type of objectjavascript:相同类型对象的不同构造函数
【发布时间】:2011-02-07 09:29:38
【问题描述】:

javascript 中的一个类是否可以有多个构造函数? 即一个带零参数,一个带一个,一个带两个,等等......

如果是这样,怎么做?

谢谢!

【问题讨论】:

标签: javascript multiple-constructors


【解决方案1】:

不,Javascript 不支持函数重载。

但是,在每个函数中,您都可以访问 arguments object,它包含提供给函数的所有参数,无论是否声明。您可以简单地查看它并决定您想要在构造函数中做什么。

糟糕的、不完善的例子:

function Foo() {

    function singleParamConstructor(foo) {
        ...
    }
    function twoParamConstructor(foo, bar) {
        ...
    }

    switch (arguments.length) {
        case 1 :
            singleParamConstructor(arguments[0]);
            break;
        case 2 :
            twoParamConstructor(arguments[0], arguments[1]);
            break;
        ...
    }
}

【讨论】:

  • 除了这个还有别的办法吗?
  • 嗯,no,Javascript 不支持函数重载。可能有无数的设计模式可以避免陷入您认为需要函数重载开始的情况。
【解决方案2】:

这可能会有所帮助:JavaScript constructor parameter types

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2012-05-12
    • 2016-01-05
    相关资源
    最近更新 更多