Как эта функция определяет, существует ли свойство на prototype
?Понимание этой пользовательской функции hasPrototypeProperty в JavaScript
function hasPrototypeProperty(object, name){
return !object.hasOwnProperty(name) && (name in object);
}
Я смущен две вещи:
Что оператор !
делать методу hasOwnProperty
?
И в то время как &&
кажется, говоря (name in object)
должен быть правдой, а я вроде не уверен ...
Я знаю hasOwnProperty
будет возвращать только true
если свойство существует на экземпляре, но я прочитал все еще проверяет prototype
, если да, зачем? Кажется, это странно, если вопрос - это единственное, что имеет значение?
Заранее благодарен!