我执行了以下代码
var x={};
x[Symbol("a")] = "a";
x.d = "d";
当我在浏览器控制台中尝试时
console.log(x); //Object {d: "d", Symbol(a): "a"}
JSON.stringify(x); //"{"d":"d"}"
var a=Symbol("a");
console.log(x[a]); //undefined
console.log(x['a']); //undefined
我有点困惑如何获得变量x的第二个属性,这是一个符号
答案 0 :(得分:2)
您需要先恢复这些符号。
var x = {};
x[Symbol("a")] = "a";
x.d = "d";
symbols = Object.getOwnPropertySymbols(x);
console.log( symbols ); //will output [Symbol("a")]
由于符号用于调试,因此即使正常迭代Object,它们也不会显示为普通属性。
要获取符号的值,一旦获得符号属性,您可以执行以下操作:
console.log( x[ symbols[0] ] );
这是JSFiddle:http://jsfiddle.net/730q04bw/1/