【发布时间】:2019-01-02 12:50:28
【问题描述】:
对于我下面的代码,我想设置一个默认的 toString() 方法,它会覆盖该类的内置 toString()。但它不起作用,我得到输出“Queue { data: [] }”而不是预期的“Hello This is example”。我查看了一些已经讨论过的关于 SO 的类似问题,但没有帮助。我也尝试过最新版本的 Chrome 并且行为是相同的。我有带有 Babel 6 的 Node 10.13 (babel-node --presets env,stage-2 queue.js)。在这里寻找一些专家意见。
class Queue {
constructor() {
this.data = [];
}
toString() {
console.log("Hello This is example");
}
}
const queue1 = new Queue();
console.log(queue1);
【问题讨论】:
-
谢谢安德烈亚斯,让 str = queue1 + "";成功了。我真的很想知道为什么 console.log() 不调用它。现在每次我必须控制台记录它时,我都必须在它之前创建 str。
-
因为在检查(记录)对象时,字符串或多或少是无用的(恕我直言)。
标签: javascript class ecmascript-6