Start
// 正常
function setCookie(name, value, options)
// 声明时候把属性声明出来,这些属性可以直接当变量拿去用
function setCookie(name, value, { secure, path, domain, expires } = {})
Intermediate
setCookie('type', 'js',
{secure: true, path: '/example', domain: 'test', expires: 60});
// Q: Can I just give a variable?
function setCookie(name, value, {secure, path, domain, expires}) {
console.log(expires); // 60
//其他代码
}
Advanced
Default Value
let defaultOptions = {
secure: true,
path: '/example',
domain: 'test',
expires: 60
};
function setCookie(name, value, {
secure = defaultOptions.secure,
path = defaultOptions.path,
domain = defaultOptions.domain,
expires = defaultOptions.expires
} = defaultOptions) {
console.log(secure); //true
console.log(path); //example
console.log(domain);//test
console.log(expires);//30
}
// 如果只是单纯地给解构参数的属性设置默认值,而不给整个解构参数设置默认值,依然不能解决类似于setCookie('id', 'mike')这样不传参所引发的代码报错问题,所以不要忘了给整个解构参数设置默认值(也就是这个例子里面的
= defaultOptions)
setCookie('id', 'mike', {path: '/example', domain: 'test', expires: 30});