Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.170.17] |
|
Сообщ.
#1
,
|
|
|
пишу след код но почему то hasOwnProperty возвращает всегда false
var Person = { name: '', age: 0 } var person = Object.create(Person); console.log(Object.prototype.hasOwnProperty.call(person, 'name')); хотя просмотривая через console.log(person) объект person содержит атрибут 'name' |
Сообщ.
#2
,
|
|
|
разобрался надо добавить propertiesObject: {name: {value:'Gregory'}, age: {value: 42}} т.е
var person = Object.create(Person, {name: {value:'Gregory'}, age: {value: 42}}); оператор var person = Object.create(Person) посути можно заменить на var person = Object.create() поскольку атрибуты и функции person находяться в его прототипе person.prototype или делать проверку Object.prototype.hasOwnProperty.call(person.__proto__, 'name')); Добавлено шото запуталси так еще раз var person = Object.create(Person); создаем person в котором атрибуты name и age будут в его прототипе __proto__, далее person.name = 'Gregory'; person.age = 42; по сути определяем новые атрибуты name, age для person такие же есть и в прототипе вывод если в исходном объекте Person нет функций то нет смысла писать var person = Object.create(Person); мона сразу var person = { name: 'Gregory', age: 42 } |