有人能解释一下为什么/怎么用下面的方法在 JavaScript 中分配键吗?
a = "b" c = {[a]: "d"}
报税表:
Object {b: "d"}
它是新的 ES2015(EcmaScript 规范的正式名称为 ES6) 计算属性名语法。这是你们在 ES3/5课程中学到的 someObject[someKey]作业的简写:
someObject[someKey]
var a = "b" var c = {[a]: "d"}
是代表:
var a = "b" var c = {} c[a] = "d"
实际上,在创建 JavaScript 物品时,使用 []为使用变量的实际值 钥匙/财产提供了一种极好的方法。
[]
/
我对上面的答案非常满意,我很欣赏它,因为它允许我用一个小例子来写这篇文章。 我已经在 节点 REPL(Nodeshell)上逐行执行了代码。
我对上面的答案非常满意,我很欣赏它,因为它允许我用一个小例子来写这篇文章。
我已经在 节点 REPL(Nodeshell)上逐行执行了代码。
> var key = "fullName"; // Assignment undefined > > var obj = {key: "Rishikesh Agrawani"} // Here key's value will not be used undefined > obj // Inappropriate, which we don't want { key: 'Rishikesh Agrawani' } > > // Let's fix undefined > var obj2 = {[key]: "Rishikesh Agrawani"} undefined > obj2 { fullName: 'Rishikesh Agrawani' } >
另外,只有当我们直到计算或运行时才知道对象中的内容是什么时,才能使用 []表示法来访问或分配对象中的内容。
const animalSounds = {cat: 'meow', dog: 'bark'}; const animal = 'lion'; const sound = 'roar'; {...animalSounds, [animal]: sound};
结果就是
{cat: 'meow', dog: 'bark', lion: 'roar'};
我想创建一个对象,但是直到运行时我才知道 key的名称。
key
回到 ES5的日子:
var myObject = {}; myObject[key] = "bar";
写两行代码太痛苦了... ... 啊,ES6刚刚出现:
var myObject = {[key]:"bar"};
如果 key的值等于 foo,那么两种方法的结果都是:
foo
{foo : "bar"}