在其他语言中,当调用函数时,您可以选择要传递的参数。
所以例如
int cookMeth(x=0,y=0,z=0){...}
cookMeth(z=123);
我的问题是,js可以吗?似乎不是,但这样做的替代方案或技术是什么?
在其他语言中,当调用函数时,您可以选择要传递的参数。
所以例如
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 });
您可以通过以下方式使用对象:
Method({ param : 1, otherParam : "data"});
function Method(options){
var variable = options.param;
}
Quentin 已经回答了您的问题,我想补充一点,有时您可以依赖参数类型,并以这种方式区分它们,但还有更多工作要做:
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));