鱼C论坛

 找回密码
 立即注册
查看: 3417|回复: 8

[已解决]问一下JavaScript函数形参的问题

[复制链接]
发表于 2022-3-11 02:31:07 | 显示全部楼层 |阅读模式
60鱼币
function myFunction(a,b,c,d,e) {
  nums = c + 100;
}
 
console.log(nums);

函数myFunction 中有五个形参, 我如果只想给 "参数c"传递值, 其他四个放那不动, 这个JavaScript办不到的嘛?
大佬轻点喷...真的懵逼...我寻思这Python随便传, JavaScript给我整懵逼了都...
最佳答案
2022-3-11 02:31:08
本帖最后由 大西瓜吃吃 于 2022-3-12 15:30 编辑
function myFunction({a,b,c,d,e}) {
  let nums = c + 100;
  return nums;
}

myFunction({c: 200}) // 300



参考资料:https://developer.mozilla.org/zh ... ucturing_assignment
记忆方式1:记得python中类似:func(**my_dict) 的形式吗,与此用法极其相似。
记忆方式2:若无此特性,你是可以写成如下形式的,是等价的,同时你也会更加理解了。
function myfun( props ) {
    let nums = props.c + 100;
    return nums;
}

最佳答案

查看完整内容

参考资料: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; }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-11 02:31:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 大西瓜吃吃 于 2022-3-12 15:30 编辑
function myFunction({a,b,c,d,e}) {
  let nums = c + 100;
  return nums;
}

myFunction({c: 200}) // 300



参考资料:https://developer.mozilla.org/zh ... ucturing_assignment
记忆方式1:记得python中类似:func(**my_dict) 的形式吗,与此用法极其相似。
记忆方式2:若无此特性,你是可以写成如下形式的,是等价的,同时你也会更加理解了。
function myfun( props ) {
    let nums = props.c + 100;
    return nums;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-11 04:53:51 | 显示全部楼层
好像也只能这样...有木有大佬有更优的代码....
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 [a1, b1, c1, d1, e1];
}

function doIt(dododo) {
  if (dododo === 0) {
    set_str = "我在a1";
    return myFunction(set_str, undefined, undefined, undefined, undefined)[0];
  }

  if (dododo === 4) {
    set_str = "我在e1";
    return myFunction(undefined, undefined, undefined, undefined, set_str)[4];
  }
}

// 传一次参
doIt(0);// 打印: 我在a1
// 传一次参
doIt(4);// 打印: 我在e1

// 传两次参
doIt(0);// 打印: 我在a1
doIt(4);// 打印: 我在e1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-11 10:36:25 | 显示全部楼层
myFunction(...[,,100,,])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-11 17:41:39 | 显示全部楼层
function myFunction(a,b,c,d,e) {
  nums = c + 100;
return nums
}
console.log(nums);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-11 18:51:45 | 显示全部楼层
zxabczl 发表于 2022-3-11 17:41
function myFunction(a,b,c,d,e) {
  nums = c + 100;
return nums

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-11 18:52:21 | 显示全部楼层

不是这种, 应该是叫js的不定数参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-12 06:45:31 | 显示全部楼层

请问这个写法的名称叫啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-12 15:22:47 | 显示全部楼层
TC_DHL 发表于 2022-3-12 06:45
请问这个写法的名称叫啥

你好同学,用法见:https://developer.mozilla.org/zh ... ucturing_assignment
考虑到你对python熟悉,为方便理解和记忆,你可以将此特性类比为我们在python中所说的解包。我个人觉得还是挺好的特性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 05:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表