本文是一篇大水文,辣眼睛
js中给普通对象(对象字面量,ObjectLiteral)初始化,key值可以是动态的
var k = 'you'
var m = {
[k]: 'are stupid'
}
console.log(m)
// output
{you: "are stupid"}
另外注意:
var k = 'you'
var m = {
['k']: 'are stupid'
}
console.log(m)
// output
{k: "are stupid"}
我感觉这里的中括号让我很困惑,求值符号?
我去翻了es5的bnf,
PropertyName :
IdentifierName
StringLiteral
NumericLiteral
//另外
IdentifierName :
IdentifierStart
IdentifierName IdentifierPart
然而 中括号的token类型是Punctuator,一点关系都没有
百思不得其解
难道是es6?
还真是