![](/img/trans.png)
[英]What is this practice called? `objectName && objectName.thing`
[英]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中的新功能,称为计算属性名称 。 它允许您使用类似于属性访问器的方括号([ ])
的表达式来动态创建属性名称。
例:
let obj = {
foo: "bar",
[ "baz" + quux() ]: 42
}
var obj = {
foo: "bar"
};
obj[ "baz" + quux() ] = 42;
您可以从MDN对象初始化程序和MDN解构分配中获得更多信息,以真正了解两者的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.