可以在函数调用中以属性是可选的方式在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);
上述功能是否仍然有效或出错?
答案 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