键的类型不一定是字符串,而是字符串或符号,一般类型都是转换成字符串(对象数字等类型),但是符号不会被强制转换。
注意:如果把符号用作对象的属性 / 键值,那么它会以一种特殊的方式存储,使得这个属性不出现在枚举中,要通过原型链上的函数 .getOwnPropertySymbols 才能找到:
var p ={
foo:16,
[Symbol("bar")]:"hello world",
baz:true
};
Object.getOwnPropertyNames( p );// [ "foo","baz" ]
//如果要取得对象的符号属性:
Object.getOwnPropertySymbols( p);// [ Symbol(bar) ]