设计是品牌无声的形象大使。——<兰德·保罗>
在函数参数中使用 ES6 Destructuring Assignment
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
1 | var sayHello = function({ name, surname }) { |
这对于接受选项对象的函数非常有用。对于此用例,您还可以添加默认参数以填写呼叫者遗漏的任何值,或者如果呼叫者根本忘记传递一个值:
1 | var sayHello2 = function({ name = "Anony", surname = "Moose" } = {}) { |
1 | sayHello2() |
参数处理
使用简单的析构分配,如果输入参数无法与函数的指定对象参数匹配,则所有不匹配的参数均为undefined,因此您需要添加正确处理此代码的代码:
1 | var sayHelloTimes = function({ name, surname }, times) { |
更糟糕的是,如果缺少要分解的参数,则会引发异常,可能会使您的应用程序停止运行:
1 | sayHelloTimes() |
它在概念上类似于访问未定义对象的属性,只是具有不同的异常类型。
使用默认参数进行销毁分配会在一定程度上隐藏以上所有内容:
1 | var sayHelloTimes2 = function({ name = "Anony", surname = "Moose" } = {}, times) { |
至于= {}
,它涵盖了缺少对象的情况,对于该对象,单个属性的默认设置根本无济于事:
1 | var sayHelloTimes2a = function({ name = "Anony", surname = "Moose" }, times) { |
可用性
请注意,默认情况下,在您使用的Node.js或浏览器版本中,销毁分配可能尚不可用。对于Node.js,您可以尝试–harmony-destructuring在启动时使用该标志来激活此功能。
参考
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!