Если я запускаю следующее:Почему console.log() только печатает поля элемента?
var T = function(x, y) {
this.x = x;
this.y = y;
}
T.prototype.foo = function() {
console.log("test");
}
var o = new T(7,4);
o.foo();
console.log(o);
с помощью node
я получаю:
test
{x: 7, y: 4}
но если я запускаю его в хроме я получаю:
test
T {x: 7, y: 4, foo: function}
Является ли это изменение реализация метода log()
или почему методы prototype
игнорируются в результате вывода? Если это не просто случай реализации log()
, означает ли это, что было бы безопасно сохранять объекты, содержащие оба поля и методы, в mongodb
, если вы только хотели сохранить эти поля, т. Е. Можете ли вы полагаться на методы, которые не рассматриваются?
Sry, на самом деле это не дубликат. Причина непечатаемых свойств совсем другая: -/Если вообще, это должно быть отмечено как дубликат [Почему console.log() не отображается унаследованным свойства из Object.create?] (http://stackoverflow.com/q/13300863/1048572), который, однако, не имеет хороших ответов. – Bergi