编程语言
首页 > 编程语言> > javascript – 对象解构语法 – ES6

javascript – 对象解构语法 – ES6

作者:互联网

我经历过数组解构语法,这是很好理解的.

当我们说var {p,q} = o时,我们到底在做什么?

var {p,q}中的p和q是否与o的属性不同,即’p’和’q’?如是,

var {a,b} = o;不起作用?

> var o = {p: 42, q: true};
    undefined
> p
    ReferenceError: p is not defined
> q
    ReferenceError: q is not defined
> o['p']
    42
> o['q']
    true
> var {p, q} = o;
    undefined
> p
    42
> q
    true
> var {a, b} = o;
    undefined
> a
    undefined
> b
    undefined

*注意:我了解到,字典键是javascript中的字符串文字.*

解决方法:

    var o = {p: 42, q: true};
     var {p, q} = o;

这里,var {p,q} = o只是var {p:p,q:q} = o的简写

考虑一下.

      var o = { key : "value" };
      var { key : local_var } = o ;
      local_var === o["key"] // true

如果省略local_var,则写入
var {key} = o;
将使用标识符“key”创建一个新的变量键.与执行相同
var key = o [“key”]

所以在你的例子中就像在做

      var p =  o["p"] ;  //42
       var q = o["q"];   //true
       var a = o["a"];  // undefined
       var b = o["b"];   //undefined

这可能不完全正确,但应该帮助您理解它.
它有点像其他语言提供的模式匹配,但它有所不同.

标签:destructuring,javascript,ecmascript-6
来源: https://codeday.me/bug/20190929/1832418.html