Why does accessing an element in an object using an array as a key work?

后端 未结 3 447
走了就别回头了
走了就别回头了 2021-01-18 00:41

What do you make of this?

var x = {a: 1};         //=> {a: 1}
var y = Object.keys(x); //=> [\'a\']
x[y]                    //=> 1

3条回答
  •  死守一世寂寞
    2021-01-18 01:26

    Property names have to be strings. If you try to use an array as a property name, it gets its toString() method called implicitly. That generates a string containing a comma-separated list of its values.

    > var array = ['a', 'b', 'c'];
    undefined
    > array.toString();
    'a,b,c'
    

    If you only have one value, then there aren't any commas.

    > var array = ['a'];
    undefined
    > array.toString();
    'a'
    

提交回复
热议问题