如何访问Symbol(Symbol.toStringTag)属性?

时间:2018-08-17 03:36:20

标签: javascript ecmascript-6

我希望从对象的Symbol(Symbol.toStringTag)字段中读取数据-在这种情况下,它应该返回“ Array Iterator”。

enter image description here

这不起作用

a.__proto__["Symbol(Symbol.toStringTag)"]

1 个答案:

答案 0 :(得分:0)

Symbol(Symbol.toStringTag)表示该属性是symbol。符号是唯一值,并且只有在已经引用了符号的情况下,您才可以引用该属性。

幸运的是Symbol.toStringTag is a well-known symbol,因此您可以参考它:

a[Symbol.toStringTag]

在此示例中,您无法直接访问该属性:

var obj = (function() {
  // prop is a unique value
  var prop = Symbol();
  return {[prop]: 42};
}());

由于我们无权访问obj[<the symbol>],因此无法直接访问prop。不过,您仍然可以遍历属性。