Может быть, глупый вопрос к гуру JS и ниндзя, но здесь идет речь:
Мое понимание прототипа объекта / свойства объекта состоит в том, что это план будущих экземпляров объекта.Учитывая это, не должен ли вновь созданный экземпляр объекта быть идентичным объекту конструктора, который его создал?
var x = new Object();
console.log(x === Object.prototype); // returns false. why??
* ОБНОВЛЕНИЕ *
Так что понимание того, чтоэто вернет false, потому что они ссылаются на разные вещи, я все еще нахожу, что новые Object () и Object.prototype
содержат различное количество свойств.Итак, чтобы уточнить мой вопрос: как правильно проверить количество свойств в прототипе Object;как мне их перебрать?
Причина, по которой меня это смутило, заключается в том, что если я создаю простую функцию конструктора:
function Circle(){
this.tail = "yes, has tail";
}
и хочу получить количество свойств,делать что-то вроде:
console.log(Object.getOwnPropertyNames(Circle.prototype));
// returns "constructor", I expected it to return "tail"