开发者

javascript: different constructors for same type of object

开发者 https://www.devze.com 2023-02-09 04:06 出处:网络
is it possible to have more开发者_运维百科 than one constructors for a class in javascript? i.e. one with zero parameters, one with one, one with two, etc...

is it possible to have more开发者_运维百科 than one constructors for a class in javascript? i.e. one with zero parameters, one with one, one with two, etc...

if so, how?

thanks!


No, Javascript does not support function overloading.

However, inside every function you have access to an arguments object, which holds all the arguments supplied to the function, declared or not. You can simply look at it and decide what exactly you want to do in your constructor.

Bad, unrefined example:

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


this might help: JavaScript constructor parameter types

0

精彩评论

暂无评论...
验证码 换一张
取 消