Javascript函数调用具有可选属性

时间:2016-06-16 17:07:52

标签: javascript function attributes function-calls

可以在函数调用中以属性是可选的方式在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);

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

4 个答案:

答案 0 :(得分:1)

将其测试为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');

答案 1 :(得分:1)

这是我对StackOverflow的第一个回应。

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

答案 2 :(得分:1)

如果可选参数未传入函数,则可以使用默认值。

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

}

答案 3 :(得分:1)

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

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

您可以找到更多详情here