gpt4 book ai didi

javascript - 如何检测JS参数是否有多余的文本?

转载 作者:行者123 更新时间:2023-11-28 19:41:36 24 4
gpt4 key购买 nike

如果我有一个带有这样的参数(或参数)的函数:

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。

最佳答案

JavaScript 不支持带标签的函数参数(类似于 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);
}

关于javascript - 如何检测JS参数是否有多余的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com