2016-04-17 2 views
1

hasOwnProperty поиск __proto__?hasOwnProperty метод в javascript output true?

function Person(){} 
Person.prototype.name = "Nicholas"; 
Person.prototype.age = 29; 
Person.prototype.job = "Software Engineer"; 
Person.prototype.sayName = function(){ 

}; 
var person1 = new Person(); 
person1.hasOwnProperty("name") // false ? 

выше пример из Prefessional JavaScript для веб-разработчиков

использование хрома: person1.hasOwnProperty("name") // is true

+1

Дубликат http://stackoverflow.com/q/19851511. Серьезно google перед публикацией. – evolutionxbox

+0

Да, книга показывает мне «ложь», но хром показывает, что это «правда» –

+1

@EggVans - Нет, не следует. Нет смысла переопределять прототип функции-конструктора каждый раз, когда из него создается новый экземпляр. – Quentin

ответ

1

Да, это должно быть правдой.

person1.name = "Greg"; дает person1 свое собственное имя, поэтому оно не приходит через цепочку прототипов.

+1

Я уверен, что этот вопрос является дубликатом http://stackoverflow.com/q/19851511. Вы могли бы отметить это как таковое? – evolutionxbox

+0

извините, перепишите этот код сейчас .. –

+1

@ Lee.zm - После того, как вы переписали код, хром возвращает false. – Quentin

Смежные вопросы