js参数对象实现可选参数和参数默认值
程序员文章站
2022-04-30 20:38:20
...
js参数对象实现可选参数和参数默认值
省略参数的前提是函数能识别你到底想传入的是哪一个参数,约定
1.可省略的参数后置
2.省略参数后不能与其它函数产生二义性 (js不存在这个问题)
程序要求你按参数定义的顺序传递参数进去。如果后面有没传的,就省略了。如果要省略中间的……对不起,自己传入 null 或 undefined。
对于 javascript 来说,可以对参数类型进行简单的判断来进行识别,以达到省略中间参数的效果,比如。
var set = function(name, date, age) { if (typeof date === "number") { age = date; date = undefined; } // .... }
这里是简单通过类型来识别的。更复杂一些的情况可以使用正则表达式来识别 domain, url, email 等,不过说起来就比较麻烦了,而且代码逻辑复杂,也不易写。
参数较多,部分可以省略的情况,建议使用参数对象。
ES5实现可选参数对象
var CookieUtil = { set: function(args) { var name = args.name; var value = args.value; var expires = args.expires; var path = args.path; var domain = args.domain; var secure = args.secure; // ... } } CookieUtil.set({ name: "name", value: "Nicholas", path: "/books/projs/", domain: "www.wrox.com", expires: new Date("January 1, 2010") });
ES6实现可选参数对象-语法糖解构赋值
function doSome({a,b=2,c}){ console.log(a,b,c) } doSome({a:5,c:22}) // 5 2 22
上一篇: 微信小程序实现全局搜索代码高亮的示例
推荐阅读
-
如何为vuex实现带参数的 getter和state.commit
-
浅谈js中function的参数默认值
-
Python数据相关系数矩阵和热力图轻松实现(参数解释)
-
Scrapy 中 Request 对象和 Response 对象的各参数及属性介绍
-
Java中成员变量与局部变量的区别、对象类型作为方法的参数和方法的返回值
-
sql2008设置subcategory报表参数可用值和默认值步骤分享
-
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
-
深入学习JavaScript中的Rest参数和参数默认值
-
JS函数动态传递参数的方法分析【基于arguments对象】
-
Python32之类和对象2(self参数及魔法方法)