ES6支持参数销毁。您可以使用:
功能栏({a}){控制台.log(a)}
但是,当您有多个参数时,它通常很有用:
//你用老方法将选项传递给函数函数oldOps(选项){var协议=选项协议;var方法=option.method;var端口=option.port;console.log(端口);}//新的更可读的方式函数newOps({协议、方法、端口}){console.log(端口)}
只有旧的IE不支持它。
但当我直接传递对象时,它不起作用:
功能栏({a:0}){console.log(this.arguments.a)}
不能以这种方式传递参数或初始化默认参数。此外,这
在您的示例中,将引用父对象,因此这是一个论据。一
没有意义,因为在大多数情况下,它会提到窗口
对象。
在参数破坏的情况下,您可以使用默认参数,因此您的代码将如下所示:
功能栏({a=0}){控制台.log(a)}条({})//0
尽管如此,任何不带参数调用它的操作都会导致错误,因为JS将尝试解析未定义
您可以使用另一个默认参数赋值来解决此问题。当你真的想打电话的时候bar()
如果没有参数,并且破坏参数具有默认值,则应使用类似以下内容:
功能栏({a=0}={}){/*…*/}
别忘了浏览器并不广泛支持它,所以您必须使用transpiler转换浏览器支持的ES6代码。
最受欢迎的转发器是巴别塔和打字稿.