如何获取对象的Symbol属性



我执行了以下代码

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的第二个属性它是一个符号

首先需要恢复这些符号。

var x = {};
x[Symbol("a")] = "a";
x.d = "d";
symbols = Object.getOwnPropertySymbols(x);
console.log( symbols ); //will output [Symbol("a")]

由于符号是用于调试的,因此它们不会作为普通属性显示,即使在通常遍历Object时也是如此。

要获取Symbol的值,一旦获得了Symbols属性,你可以这样做:
console.log( x[ symbols[0] ] );

这是JSFiddle: http://jsfiddle.net/730q04bw/1/

相关内容

最新更新