Javascript 如何通过参数的名称将数据传递给函数?
我是JavaSscript的新手。基本上,我不想通过这些函数参数的位置来传递数据。当有10个或更多参数时,这是不方便的 我想通过函数中定义的参数名传递它。但是,使用此语句时有一个副作用:Javascript 如何通过参数的名称将数据传递给函数?,javascript,Javascript,我是JavaSscript的新手。基本上,我不想通过这些函数参数的位置来传递数据。当有10个或更多参数时,这是不方便的 我想通过函数中定义的参数名传递它。但是,使用此语句时有一个副作用:my_func(param01=1)。在我看来,在函数调用内部使用param01=1只表示将1传递给参数param01,在函数调用外部不会产生任何影响 这是我的代码: 函数my_func(param01){ log('param01在my_func:'中,param01) } 参数01=3 my_func(参数
my_func(param01=1)
。在我看来,在函数调用内部使用param01=1
只表示将1传递给参数param01
,在函数调用外部不会产生任何影响
这是我的代码:
函数my_func(param01){
log('param01在my_func:'中,param01)
}
参数01=3
my_func(参数01=1)
console.log('param01超出我的函数:',param01)
//结果是1而不是3。
使用,在这种情况下,函数可以接受10个参数,但不需要对参数排序,因为函数中的值将使用键名检索。调用函数时,参数的顺序也可以是任意的
函数my_func({
param01,
参数2,
param3
}) {
log('param01在my_func:'中,param01,param3)
}
参数01=0
我的函数({
参数01:1,,
参数3:4
})
console.log('param01在my_func:'之外,param01)
函数声明内部的参数名可以是随机的,但顺序很重要。但您可以在js中使用默认参数值,默认设置:
function my_func(param01 = 1) {
console.log('param01 inside my_func: ', param01)
}
如果你想在外面0,但在里面1,你会有一个糟糕的时间 您传入的零是完全可以接受的。如果你想让零成为一个禁忌。。。您可以使用默认运算符
|
,它计算从左到右的真实性和短路值
函数my_func(param01){
param01=param01 | | 1;//内部=0 | | 1=1
console.log('param01在my_func:'中,param01)//>>1
}
param01=0//global=0
my_func(param01)//传入有效的全局0
log('param01在my_func:'之外,param01)//>>0
我认为这里的主要问题是对参数在JavaScript中如何工作的误解。看起来您来自这样一种语言,即:
my_func(param01=1)
将名为param0
的参数及其值1
传递给函数
但在JavaScript中会发生这样的情况:
1
1
,因此1
也作为参数传递给函数param01
也在您的函数之外
在JavaScript中,调用函数时不指定参数名。所以这是一样的:
my_func(1)
如果要提供更多参数,您有多个选项:
my_func(1,2,3,4,5,6)
function my_func(param1, param2, param3, param4, param5, param6)
function my_func(params)
或者您可以使用以下语法:
这样,您可以传递任意多个参数,它们都将位于params
数组中。然后可以这样访问它们:param[0]
用于第一个参数,param[1]
用于第二个参数,依此类推
function my_func(param1, param2, param3, param4, param5, param6)
function my_func(params)
作为干净编码的旁注:您的函数应该具有尽可能少的参数。如果你有很多参数,这通常表明函数做了太多的事情,因此违反了单一责任模式,应该分成更小的函数。你需要定义每个函数参数,比如上面评论中的Jenny和brk 詹妮: my_func(1,2,3,4,5,6) 黑色黑色: 我的函数({ 参数01:1,, 参数3:4 }) 如果不教计算机10个或更多参数是什么,则无法通过函数中定义的参数名传递10个或更多参数。
如果我误解了您的问题,请澄清。如果您将
param01=1
传递给my_func
时将其设置为0
?