如果我有一个带参数(或参数)的函数,如下所示:
check('red', 'blue', 'arial')
我想知道的是你能有这样的文字:
check(background:'red', color:'blue', font:'arial')
在函数中我有一个if语句,所以如果参数或参数有背景:在它之前,它会在背景后将背景更改为参数:
function check(one, two, three){
if (one==background:one){
document.body.style.background= one ;
}
}
我知道这不起作用,你会怎么做呢?
我可以使用if语句,但可以对其进行编码以检测参数之前是否有'background:'吗?这有可能还是有更好的方法呢? 如果可能的话,我想使用纯JavaScript。
答案 0 :(得分:3)
JavaScript不支持带标签的函数参数(la C#和其他语言)。但是,传输配置对象很容易:
function check(config) {
// config.background
// config.color
// config.font
}
check({ background: 'red', color: 'blue', font: 'arial' });
如果您需要或希望该函数也支持使用常规参数调用,您始终可以检测参数类型:
function check(background, color, font) {
if(typeof background === 'object') {
color = background.color;
font = background.font;
background = background.background;
}
// background, color, and font are what you expect
}
// you can call it either way:
check('red', 'blue', 'arial');
check({ background: 'red', color: 'blue', font: 'arial' });
最后,如果您不想(或以某种方式不能)修改原始功能,您可以将其包装起来:
var originalCheck = check;
check = function(config) {
originalCheck(config.background, config.color, config.font);
}