#javascript #node.js
#javascript #node.js
Вопрос:
В документации nodejs для функции util.inspect указано, что «Если showHidden имеет значение true, то также будут показаны неисчислимые свойства объекта».
Относятся ли неперечисляемые свойства только к прототипам? Или есть другие неперечисляемые свойства, которые я не рассматривал?
Ссылка на документацию, о которой идет речь:http://nodejs.org/docs/v0.4.8/api/util.html#util.inspect
Ответ №1:
Перечислимые свойства и свойства прототипа не связаны. Просто так получилось, что большинство (все?) свойств прототипа на собственных объектах являются неисчислимыми.
Чтобы показать, что свойства прототипа и экземпляра могут быть как перечислимыми, так и неперечисляемыми:
Вы можете создавать неперечисляемые свойства для своих собственных объектов с помощью defineProperty()
:
var obj = {};
Object.defineProperty(obj, 'a', {
value: 1,
enumerable: false
});
С другой стороны, свойства прототипа, которые вы добавляете (неродные), по умолчанию перечислимы, даже если вы добавляете их к прототипам собственных объектов:
Object.prototype.a = 1;
var obj = {};
// Will log "a"
for (var i in obj) {
console.log(i);
}