Javascript 具有可选属性的函数调用

Javascript function call to have optional attributes

能否在 javascript 中以属性在函数调用中可选的方式定义函数?

例如,我定义了以下函数:

function abc(x1,y1,x2,y2){
//execution
}

我愿意做的是这样的:

function abc(x1,y1,x2,y2,id){
if(id!=''){
//do something
}else{
// do something else
}
}

函数调用:abc(1,2,3,4);

上述功能是否仍然有效或报错?

测试为typeof id !== 'undefined'

function abc(x1, y1, x2, y2, id) {
  if (typeof id !== 'undefined') {
    console.log(id);
  } else {
    console.log(arguments);
  }
}

abc(1, 2, 3, 4);
console.log('-------------------');
abc(1, 2, 3, 4, 'YOUR_ID');

这是我在 Whosebug 上的第一个回复。

function miOptionalFunction(a, b, optionalParameter) {
    if (optionalParameter === undefined) {
        optionalParameter = "defect value";
    } else {
        //do something...
    }
}

如果可选参数未传递给函数,您可以为其设置默认值。

function test(a, b, c = false) {

}

在 JavaScript 中,函数有一个名为 arguments 的内置对象,您可以像这样使用它:

function abc( x1, y1, x2, y2, id) {
   if ( arguments.length > 4 ) {
       //do something
   } else {
       // do something else
   }
}

您可以找到更多详细信息here