для моего кода ниже я хочу установить метод toString () по умолчанию, который переопределяет встроенный метод toString () для этого класса.Но он не работает, и я получаю вывод "Queue {data: []}" вместо ожидаемого "Hello Это пример".
class Queue {
constructor() {
this.data = [];
}
toString() {
console.log("Hello This is example");
}
}
const queue1 = new Queue();
console.log(queue1);
В приведенном выше коде метод toString
нене переопределять метод класса toString
.Зачем?Поскольку toString
класса возвращает a String.
В вашем коде console.log("Hello This is example");
не возвращает никакого значения .Вот почему вы получаете вывод: Очередь {данные: []} .Это вывод по умолчанию.Если вы удалите метод toString
из своего класса Queue
, оператор console.log(queue1);
все равно будет печатать: Очередь {data: []} .
Чтобы сделать Queue
Представление объекта класса в виде строкового значения, вам нужно кодировать что-то вроде этого:
toString() {
return "Hello this is an example";
}
Чтобы использовать toString
в своем приложении, вы можете попробовать код в любой из строк # 2 или # 3 ниже, и будет напечатано: «Привет, это пример».
const queue1 = new Queue();
console.log(queue1); // #2
console.log(queue1.toString()); // #3
Также посмотрите эту ссылку и Object.prototype.toString () .