鱼C论坛

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

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

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

  4. console.log(nums);
复制代码


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

  5. 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; }
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  5. 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://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-11 04:53:51 | 显示全部楼层
好像也只能这样...有木有大佬有更优的代码....

  1. function myFunction(a,b,c,d,e) {
  2.   var a1;
  3.   var b1;
  4.   var c1;
  5.   var d1;
  6.   var e1;

  7.   if (a != undefined){
  8.     a1 = {
  9.       "sum": a
  10.     };
  11.     console.log(a);
  12.   }
  13.   if (b != undefined){
  14.     b1 = {
  15.       "sum": b
  16.     }
  17.     console.log(b);
  18.   }
  19.   if (c != undefined){
  20.     c1 = {
  21.       "sum": c
  22.     }
  23.     console.log(c);
  24.   }
  25.   if (d != undefined){
  26.     d1 = {
  27.       "sum": d
  28.     }
  29.     console.log(d);
  30.   }
  31.   if (e != undefined){
  32.     e1 = {
  33.       "sum": e
  34.     }
  35.     console.log(e);
  36.   }

  37.   return [a1, b1, c1, d1, e1];
  38. }

  39. function doIt(dododo) {
  40.   if (dododo === 0) {
  41.     set_str = "我在a1";
  42.     return myFunction(set_str, undefined, undefined, undefined, undefined)[0];
  43.   }

  44.   if (dododo === 4) {
  45.     set_str = "我在e1";
  46.     return myFunction(undefined, undefined, undefined, undefined, set_str)[4];
  47.   }
  48. }

  49. // 传一次参
  50. doIt(0);// 打印: 我在a1
  51. // 传一次参
  52. doIt(4);// 打印: 我在e1

  53. // 传两次参
  54. doIt(0);// 打印: 我在a1
  55. doIt(4);// 打印: 我在e1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-11 10:36:25 | 显示全部楼层
myFunction(...[,,100,,])
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-11 17:41:39 | 显示全部楼层
function myFunction(a,b,c,d,e) {
  nums = c + 100;
return nums
}
console.log(nums);
小甲鱼最新课程 -> https://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

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

不是这种, 应该是叫js的不定数参数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

请问这个写法的名称叫啥
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 19:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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