问一下JavaScript函数形参的问题
function myFunction(a,b,c,d,e) {nums = c + 100;
}
console.log(nums);
函数myFunction 中有五个形参, 我如果只想给 "参数c"传递值, 其他四个放那不动, 这个JavaScript办不到的嘛?
大佬轻点喷...真的懵逼...我寻思这Python随便传, JavaScript给我整懵逼了都...{:10_266:} 本帖最后由 大西瓜吃吃 于 2022-3-12 15:30 编辑
function myFunction({a,b,c,d,e}) {
let nums = c + 100;
return nums;
}
myFunction({c: 200}) // 300
{:10_254:}{:10_254:}{:10_254:}
参考资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
记忆方式1:记得python中类似:func(**my_dict) 的形式吗,与此用法极其相似。
记忆方式2:若无此特性,你是可以写成如下形式的,是等价的,同时你也会更加理解了。
function myfun( props ) {
let nums = props.c + 100;
return nums;
}
好像也只能这样...有木有大佬有更优的代码....{:10_248:}
function myFunction(a,b,c,d,e) {
var a1;
var b1;
var c1;
var d1;
var e1;
if (a != undefined){
a1 = {
"sum": a
};
console.log(a);
}
if (b != undefined){
b1 = {
"sum": b
}
console.log(b);
}
if (c != undefined){
c1 = {
"sum": c
}
console.log(c);
}
if (d != undefined){
d1 = {
"sum": d
}
console.log(d);
}
if (e != undefined){
e1 = {
"sum": e
}
console.log(e);
}
return ;
}
function doIt(dododo) {
if (dododo === 0) {
set_str = "我在a1";
return myFunction(set_str, undefined, undefined, undefined, undefined);
}
if (dododo === 4) {
set_str = "我在e1";
return myFunction(undefined, undefined, undefined, undefined, set_str);
}
}
// 传一次参
doIt(0);// 打印: 我在a1
// 传一次参
doIt(4);// 打印: 我在e1
// 传两次参
doIt(0);// 打印: 我在a1
doIt(4);// 打印: 我在e1 myFunction(...[,,100,,]) function myFunction(a,b,c,d,e) {
nums = c + 100;
return nums
}
console.log(nums); zxabczl 发表于 2022-3-11 17:41
function myFunction(a,b,c,d,e) {
nums = c + 100;
return nums
{:10_283:} kogawananari 发表于 2022-3-11 10:36
myFunction(...[,,100,,])
不是这种, 应该是叫js的不定数参数 大西瓜吃吃 发表于 2022-3-12 00:15
请问这个写法的名称叫啥 TC_DHL 发表于 2022-3-12 06:45
请问这个写法的名称叫啥
{:10_254:}你好同学,用法见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
考虑到你对python熟悉,为方便理解和记忆,你可以将此特性类比为我们在python中所说的解包。我个人觉得还是挺好的特性。
页:
[1]