请问,当我调用参数的时候,如何少传参数?

function unsalable_data_get(selectedid,page_num,limit_num){}

unsalable_data_get(selectedid,page_num,limit_num)

当我调用unsalable_data_get 的时候,我想只传第二个 和 第三个参数,或者只传第一个参数,后面的参数不传,请问该怎样写呢?我现在会报undefined,

感谢大家的回答,非常感谢!

阅读 4k
4 个回答

是的,要不把入参参数改为对象。比如:

// 定义
unsalable_data_get(opts) {}

// 调用的时候传递对象参数,而不是单个参数
unsalable_data_get({
selectedid: selectedid,
page_num: page_num,
limit_num: limit_num
})

要不在参数中给个默认值,这样就不会得到undefined了。比如:

// 定义
unsalable_data_get(selectedid = "",page_num = "",limit_num = "") {}

不过,报undefined貌似也没问题吧?这只能说明你传参不对而已。
所以你的问题是什么?

可以把入参改为对象

函数里面如果添加非空判断的话,直接传null就行了呗

你原来的定义函数的方式是不允许少参数,更不允许少排位在前面的参数。

现在在javascript中,在ES6中允许缺省参数设置,比如:

function unsalable_data_get(selectedid=1,page_num=1,limit_num=1){}

则调用中,可以用下面的方式传递3个参数

unsalable_data_get(1,2,3)

可以用下面的方式传递第1个参数(第2,3个用缺省)

unsalable_data_get(1)

可以用下面的方式传递前2个参数(第3个用缺省)

unsalable_data_get(1,2)

可以用下面的方式传递第2、3个参数(第1个用缺省)

unsalable_data_get(undefined,1,2)

可以用下面的方式传递第3个参数(第1,2个用缺省)

unsalable_data_get(undefined,undefined,2)

可以用下面的方式传递第2个参数(第1,3个用缺省)

unsalable_data_get(undefined,2,undefined)

其实所有函数,即使没有缺省值,也可以用undefined占位作为参数来调用函数,只是这时函数的运行很可能就没有意义啦。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题