当函数makeRequest()被传入三个参数时,默认参数将以传入值进行运算,如下:
// uses default timeout and callback
makeRequest("/foo");...// uses default callback
makeRequest("/foo", 500);
// doesn't use defaults
makeRequest("/foo", 500, function...domain = options.domain,
expires = options.expires;
// ...
}
setCookie("type", "js...function setCookie(name, value, { secure, path, domain, expires }) {
// ...
}
setCookie("type", "js...setCookie("type", "js");
上述函数因为没有传入第三个参数,最终抛出运行错误。造成这种问题的原理在于解构参数本质上是解构赋值的缩略形式。