Chrome 54.0.2840.71 (64-разрядная версия)массив console.log не использует пользовательский класс ToString
У меня есть массив объектов, построенных из пользовательского класса. Если I console.log
массив, как мне получить объекты в массиве, чтобы использовать их функцию toString
без необходимости вручную петли массива? Это возможно?
Кодjsfiddle
function MyClass(value) {
MyClass.prototype.getValue = function() {
return value;
}
}
MyClass.prototype.toString = function() {
return "[MyClass: " + this.getValue() + "]";
}
var mc0 = new MyClass(0);
var mc1 = new MyClass(1);
console.log([mc0, mc1]);
Выходной ток
[MyClass, MyClass]
Желаемая Выход
[[MyClass: 0], [MyClass: 1]]
Это 2016. Используйте ES6. –
Не модифицируйте прототип в конструкторе! 'mc0.toString() ===" [MyClass: 1] "' потому что вы перезаписали его – Oriol
Возможный дубликат [Почему консоль не использует метод toString для введенного объекта?] (http://stackoverflow.com/ q/12254038/1529630) – Oriol