为了方便调试,我认为最好打印一些自定义字符串,而不是在将对象记录到控制台时显示的默认Object
。
在下面的示例中,您将看到名为 example
的对象在记录到控制台时如何由 Object
标记,而 window
是记录到控制台时由 Window
标记。我猜想 __proto__["Symbol(Symbol.toStringTag)"]
属性可能是正确的选择,因为 window
设置为 Window
.这不起作用,但也许我只是用错了它。
最佳答案
那是因为您使用了错误的符号 - 您走在正确的轨道上。 Symbol.toStringTag
是一个特殊的众所周知的 Symbol,Object#toString
使用它来为您提供控制台输出,特别是您要查找的标签。您不能像以前那样将其包装在字符串中,否则您实际上将设置 "Symbol.toStringTag"
属性,而不是实际的 Symbol:
const example = {
key: "value"
};
example.__proto__["Symbol.toStringTag"] = "Example";
console.log(example); //You set the literal "Symbol.toStringTag" property -- wrong
相反,不要将其括在引号中并实际设置符号:
const example = {
key: "value"
};
example.__proto__[Symbol.toStringTag] = "Example";
console.log(example);
这会产生(在 Chrome 上):
关于javascript - 自定义字符串而不是 console.log 中的 "Object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45284564/