javascript:相同类型的对象的不同构造函数

javascript:相同类型的对象的不同构造函数

问题描述:

是否有可能在javascript中有一个以上的构造函数? 即一个具有零参数,一个与一个,一个与两个等...javascript:相同类型的对象的不同构造函数

如果是这样,怎么样?

谢谢!

+0

你想应被称为“多态函数构造函数”是什么。看看http://www.highdots.com/forums/javascript/multiple-constructors-allowed-javascript-198415.html – 2011-02-07 09:32:57

+0

可能重复[JavaScript模式为多个构造函数](http://*.com/questions/3220721/javascript-pattern-for-multiple-constructors) – Suma 2017-02-24 09:31:06

不,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; 
     ... 
    } 
}