gpt4 book ai didi

javascript - Javascript 中的函数参数

转载 作者:行者123 更新时间:2023-11-30 17:59:07 25 4
gpt4 key购买 nike

这是一个简单的 JavaScript 问题

我有一个带有两个参数的函数:

function myFunction(par1, par2) {

//Part One
//This will get executed always

//Lots of logic here

if (!par2) {


//Part Two
//this will not get executed if FALSE is passed as a second argument
//more logic here

}

}

在那个函数中我有 if,它的执行取决于 par2(它是 bool)

该函数在其他地方的代码中被多次调用,当它被调用时,两个部分都被执行。那是有意的。现在,我需要使用相同的功能,但我只需要执行第一部分。所以我想将第二个参数添加为 Bool 类型。并且有效。

例如,调用函数如:myFunction (par1) 将执行这两个部分。但是,如果我像 myFunction (par1, true) 那样调用它,它将只执行第 1 部分。

有效。

我知道 Javascript 不会进行参数检查,因此在某些情况下我最终将 undefined 作为第二个参数。

我的问题是这是正常做法吗?

最佳答案

你可以有一个这样的默认参数:

function myFunction (par1, par2) {
par2 = typeof par2 !== 'undefined' ? par2 : false;

...
}

如果您调用该函数时没有第二个参数,它将安全地默认为 false 而不是 undefined

如果您发现您需要很多参数,而并非所有参数都是必需的,您可以取一个对象作为参数。这为您提供了更大程度的灵 active ,因为您可以选择省略参数而不必担心顺序:

function myFunction (params) {
var defaults = {
par1 : 'a',
par2 : false
}

if(typeof params == 'undefined') params = {};
for(var prop in defaults){
params[prop] = typeof params[prop] == 'undefined' ? defaults[prop] : params[prop];
}

// you can now assume that all of the properties are set in params
// they will either be the value passed, or the default
}

调用可能如下所示:

myFunction({
par1 : 'a',
par2 : 'b'
});

或任何其他组合:

myFunction({
par1 : 'a'
});

甚至省略一切:

myFunction();

关于javascript - Javascript 中的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17468080/

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