选择要为函数传递的参数。Javascript

选择要为函数传递的参数。Javascript,javascript,Javascript,在其他语言中,调用函数时,可以选择传递哪些参数 比如说 int cookMeth(x=0,y=0,z=0){...} cookMeth(z=123); 我的问题是,js有可能吗?似乎不是,但有什么替代方案或技术可以做到这一点呢?不,不是 所有参数都是可选的,但不能跳过参数 你可以: 显式传递要忽略的值 exampleFunction(undefined, undefined, 123); function exampleFunction(args) { var x = args.x

在其他语言中,调用函数时,可以选择传递哪些参数

比如说

int cookMeth(x=0,y=0,z=0){...}

cookMeth(z=123);
我的问题是,js有可能吗?似乎不是,但有什么替代方案或技术可以做到这一点呢?

不,不是

所有参数都是可选的,但不能跳过参数

你可以:

显式传递要忽略的值

exampleFunction(undefined, undefined, 123);
function exampleFunction(args) {
    var x = args.x, y = args.y, z = args.z;
}

exampleFunction({ z: 123 });
而是传递一个对象

exampleFunction(undefined, undefined, 123);
function exampleFunction(args) {
    var x = args.x, y = args.y, z = args.z;
}

exampleFunction({ z: 123 });

您可以通过以下方式使用对象:

Method({ param : 1, otherParam : "data"});

function Method(options){
    var variable = options.param;
}

昆汀已经回答了你的问题,我只想补充一点,有时候,你可以依靠论点类型,并以此来区分它们,但还有更多的工作要做:

function some(){

    var name,
        birth;

    if (typeof arguments[0] === 'string') {
        name = arguments[0];
        birth = arguments[1] || new Date();
    } else{
        name = 'Anonym';
        birth = arguments[0];
    }

    // ...
}


some('foo', new Date(1500, 1, 1));
some(new Date(1500, 1, 1));

哦,哇,经过的物体很好,我没想到。谢谢:)这是一个不错的选择。谢谢:)