我試圖用Symbol.toStringTag
爲了得到[object Pirate]
結果,每當我打電話.toString
對海盜的實例,但我不斷收到[object Object]
回來了!Symbol.toStringTag定義但沒有使用的ToString方法
我已經閱讀the ES6 spec for toString
並根據它我的代碼應該工作。也許我錯過了一些東西。
下面的代碼是什麼我預計發生:
function Pirate(name) {
this.name = name;
}
Object.defineProperty(Pirate.prototype, Symbol.toStringTag, {
value:() => 'Pirate'
});
console.log(new Pirate('Jack Sparrow').toString()); // I expected '[object Pirate]'
我失去了一些東西在這裏?我還檢查了Pirate.prototype[Symbol.toStringTag]
是否正在設置。
太棒了!我應該爲該屬性設置getter,而不是設置其值。謝謝! – lucasfcosta