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

时间:2018-07-10 12:11:54

标签: javascript ecmascript-6

我是第一次看到这种语言功能。这使您可以直接将值分配给变量,其名称保存在tableView.estimatedRowHeight = 120 // initial height to help auto-layout such as current cell height in xib tableView.rowHeight = UITableViewAutomaticDimension (也为MarkerDest)中。到目前为止,我会这样做:"MarkerDest"

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

markers[MarkerDest] = ...

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

这里有几个新功能。

第一行使用解构赋值从对象中声明值(或者可以从数组中声明值)。您可以在MDN上详细了解它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

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

答案 2 :(得分:0)

这是ECMAScript 6中的一项新功能,称为 Computed Property Names 。它允许您使用类似于property accessors的括号([ ])中的表达式来动态创建属性名称。

示例:

ECMAScript 6-语法糖:减少

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

ECMAScript 5-语法糖:传统

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

您可以阅读MDN Object initializerMDN Destructuring assignment的更多内容,以真正了解两者的工作原理。