任何人都可以解释为什么/如何在javascript中分配键的以下方法有效?
a = "b"
c = {[a]: "d"}
Run Code Online (Sandbox Code Playgroud)
返回:
Object {b: "d"}
Run Code Online (Sandbox Code Playgroud)
Sea*_*ira 119
这是新的ES2015(EcmaScript规范,正式称为ES6)计算属性名称语法.这someObject[someKey]
是你从ES3/5中得知的作业的简写:
var a = "b"
var c = {[a]: "d"}
Run Code Online (Sandbox Code Playgroud)
语法糖是:
var a = "b"
var c = {}
c[a] = "d"
Run Code Online (Sandbox Code Playgroud)
小智 18
const animalSounds = {cat: 'meow', dog: 'bark'};
const animal = 'lion';
const sound = 'roar';
{...animalSounds, [animal]: sound};
Run Code Online (Sandbox Code Playgroud)
结果将是
{cat: 'meow', dog: 'bark', lion: 'roar'};
Run Code Online (Sandbox Code Playgroud)
hyg*_*ull 13
实际上,在创建JavaScript 对象时,的使用[]
提供了一种使用变量的实际值作为键/
属性的绝妙方法。
我对上面的答案非常满意,对此我表示赞赏,因为它使我可以举一个小例子。
我已经在Node REPL(Node shell)上逐行执行了代码。
> 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' }
>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20405 次 |
最近记录: |