js参数对象实现可选参数和参数默认值
程序员文章站
2024-01-03 16:14:34
...
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
推荐阅读
-
PHP根据传入参数合并多个JS和CSS文件的简单实现
-
从URL中提取参数与将对象转换为URL查询参数的实现代码_javascript技巧
-
探讨JavaScript中的Rest参数和参数默认值
-
JavaScript中实现函数重载和参数默认值
-
SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍
-
SqlServer参数化查询之where in和like实现详解
-
Symfony实现行为和模板中取得request参数的方法
-
js实现完美拖拽效果可拖动层与回放拖动规迹并显示拖动距离参数
-
JS实现点击参数面板按钮显示或隐藏数据
-
PHP根据传入参数合并多个JS和CSS文件的简单实现