为了方便调试,我认为打印一些自定义字符串会很好,而不是将对象记录到控制台时出现的默认Object
。
在以下示例中,查看example
对象在记录到控制台时如何标记Object
,而window
在Window
标记为__proto__["Symbol(Symbol.toStringTag)"]
时登录到控制台。我猜测window
属性可能是要走的路,因为Window
' s设置为foo_out *out = malloc(sizeof(foo_out));
if (foo_2(out, cl) != RPC_SUCCESS) {
printf("failed \n");
// exit(1);
}
printf("foo out: %s\n", out->name);
。这不起作用,但也许我只是错误地使用它。
答案 0 :(得分:2)
那是因为你使用的是错误的符号 - 你在正确的轨道上。 Symbol.toStringTag
是Object#toString
用来为您提供控制台输出的特殊着名符号,特别是您所使用的标记。你不能像你一样把它包装成一个字符串,否则你将真正设置"Symbol.toStringTag"
属性,而不是实际的符号:
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上):