ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] >[success] # 参数解构 传递函数参数时。当 JS 的函数接收大量可选参数时,一个常用模式是创建一个 options 对象,其中包含了附加的参数 >[success] ## ES5参数解构 ~~~ 下面这种方法很有用,但无法仅通过查看'函数定义'就判断出函数所期望的输入,你必须阅读'函数体'的代码。 ~~~ ~~~ // options 上的属性表示附加参数 function setCookie(name, value, options) { options = options || {} let secure = options.secure, path = options.path, domain = options.domain, expires = options.expires; console.log(options) } // 第三个参数映射到 options setCookie("type", "js", { secure: true, expires: 60000 }) ~~~ <br/> >[success] ## ES6参数解构 ~~~ // name, value代表必传,第三个参数代表不必传 function setCookie(name, value, { secure, path, domain, expires } = {}) { // 设置 cookie 的代码 console.log(secure) // true console.log(expires) // 60000 } setCookie("type", "js", { secure: true, expires: 60000 }) 或者'数组参数解构' let a = 1, b = 2 function test([b,a] = []){ console.log(b,a) // 1 2 } test([a,b]) ~~~ <br/> >[success] ## 参数解构默认值 ~~~ 你可以为'参数解构'提供可解构的'默认值',就像在'解构赋值'时所做的那样,只需在其中每个参数后面添加 '等号'并指定'默认值'即可。例如: ~~~ ~~~ function setCookie(name, value, { secure = false, path = "/", domain = "example.com", expires = new Date(Date.now() + 360000000) } = {} ) { console.log(secure) // 1 console.log(path) // example.com console.log(domain) // 22 // 代码... } setCookie('小明','100岁',{secure:1,path:22}) ~~~