【问题标题】:object in javascript function definitionjavascript函数定义中的对象
【发布时间】:2017-04-24 21:13:16
【问题描述】:

我的朋友只是在编写一些无意义的代码,或者至少我认为他是,但令我惊讶的是它没有抛出任何错误。然而,这并没有达到他的预期,因为他真的不知道自己在做什么。 但是现在我很好奇它做了什么,因为一定有某种原因它不会抛出错误。 代码看起来像这样:

var n = function(someArg, anotherArg, {help: []}){};

另外,当向对象添加数据时,它会抛出错误:

var n = function(someArg, anotherArg, {help: ["something"]}){};

抛出:'Uncaught SyntaxError: Unexpected string'

那么为什么允许随机参数?

【问题讨论】:

    标签: javascript function object parameters definition


    【解决方案1】:

    这是 EcmaScript 6 argument destructuring。如果将函数定义为:

    function myfun({help: [a, b, c]}) {}
    

    你可以这样称呼它:

    myFun({help: [1, 2, 3]});
    

    它会将参数abc分别绑定到123。您的示例只是这种情况的退化情况,其中包含变量的数组为空。

    在解构参数列表中,表达式可以在普通对象或数组字面量中出现的位置必须包含变量名,因为该变量将绑定到参数对象/数组中的相应元素。这就是第二个版本产生错误的原因:"something" 不是变量名,它是一个字符串,因此不能在模式中使用。

    【讨论】:

    • 啊,我明白了,这很酷。我现在已经查找了 javascript descstructuring(我从未听说过的东西),如果其他人也有兴趣,我想离开 a link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2014-10-10
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多