繁体   English   中英

这种语言的功能是什么:[objectname]:{foo:'Bar'},

[英]What is this language feature called: [objectname]: { foo: 'Bar' },

我只是第一次看到此语言功能。 这使您可以将值直接分配给具有保存在MarkerDest的名称的变量(该名称也为"MarkerDest" )。 到现在为止,我将像这样进行操作: markers[MarkerDest] = ...

那么您如何称呼此JavaScript语言功能?

const { MarkerDest, MarkerUpcoming, MarkerNext } = {
  MarkerDest: 'MarkerDest',
  MarkerUpcoming: 'MarkerUpcoming',
  MarkerNext: 'MarkerNext',
};

const markers = {
  [MarkerDest]: { foo: 'Bar' },
 };

这里有几个新功能。

第一行使用解构赋值从对象中声明值(或者可以从数组中声明值)。 您可以在MDN上阅读有关此内容的更多信息: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

第二部分将变量用作下一个对象的属性时 ,称为计算属性 ,其中变量用作对象内的键。

这是ECMAScript 6中的新功能,称为计算属性名称 它允许您使用类似于属性访问器的方括号([ ])的表达式来动态创建属性名称。

例:

ECMAScript 6-语法糖:减少了

let obj = {
    foo: "bar",
    [ "baz" + quux() ]: 42
}

ECMAScript 5-语法糖:传统

var obj = {
    foo: "bar"
};
obj[ "baz" + quux() ] = 42;

您可以从MDN对象初始化程序MDN解构分配中获得更多信息,以真正了解两者的工作方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM