【问题标题】:What does var {u,v,w} = x; mean in Javascript? [duplicate]var {u,v,w} = x; 是什么?在Javascript中是什么意思? [复制]
【发布时间】:2023-03-31 04:11:01
【问题描述】:

我在一段 JS 代码中看到过这个:

var {status, headers, body} = res;

它有什么作用?

【问题讨论】:

  • 在一些 helma.org 源代码中。
  • Destructuring assignment in JavaScript - Stack Overflow。请注意,Javascript 1.7(实际上是 1.5 之后的所有版本)实际上仅适用于 Mozilla。
  • ephemient:解构绑定也是我的第一个想法,但我没有看到任何在左侧使用大括号 {} 的表单。
  • 澄清 ehemient 的意思:这只适用于 Firefox。 Chrome、Safari 和 IE 都不支持这个。
  • 我在 Rhino (Javascript 1.7) 中试过这个,不出所料,它只会产生一个语法错误。我在 Javascript 1.8 或 1.8.1 发行说明中也没有看到任何类似这样的内容。

标签: javascript language-construct


【解决方案1】:

从一个对象一次设置几个变量的好方法 (打开萤火虫并将其粘贴到控制台)

var status=4;
var headers=4;
var body=4;

var res = {status:1, headers:2, body:3};
window.alert(status);
var {status, headers, body} = res;
window.alert(status);

【讨论】:

    【解决方案2】:

    我读到了与你的表达不同的东西 here 。这可能对你有帮助

     var { a:x, b:y } = { a:7, b:8 };
     Print(x); // prints: 7
     Print(y); // prints: 8
    

    【讨论】:

      【解决方案3】:

      看起来像是对名为res 的变量的解构尝试。我从未在 Javascript 和 Chrome 控制台中看到这表明这是一个错误:

      > var res = [ 1, 2, 3 ];
      > var {status, headers, body} = res;
      SyntaxError: Unexpected token {
      

      Firefox 4b12 上的 Firebug 控制台并没有抱怨,但该声明似乎没有效果:

      > var res = [ 1, 2, 3 ];
      > var {status, headers, body} = res;
      > status
      undefined
      > headers
      undefined
      > body
      undefined
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-18
        • 2016-11-12
        • 2015-07-15
        • 2018-07-17
        • 2011-06-20
        • 2011-04-16
        • 2013-08-17
        • 2014-01-23
        相关资源
        最近更新 更多