var Person = function(name, age){
return Object.create(Object.prototype, {
name: {
value: name | "",
writable: true,
enumerable: true,
configurable: true
},
age: {
value: age | "",
writable: true,
enumerable: true,
configurable: true
}
});
};
var Boy = function(name, age){
return Object.create(Person(name, age), {
gender: {
value: "male"
}
});
};
var p = Person("John", 28);
var b = Boy();
console.log(p.isPrototypeOf(b)); // false?
Я пытаюсь понять object.create и как лучше его использовать, избегая использования конструкторов ключевое слово new
.До сих пор я подходил к нему, как описано выше (хотя, вероятно, не лучшим образом, просто методом проб и ошибок) - и натолкнулся на то, что если я использую object.create
, я больше не могу проверять instanceof
и тип объекта.1006 * Кто-то предложил использовать isPrototypeOf для проверки - я делаю что-то неправильно, так как мой код выше возвращает false
при проверке.
Кто-нибудь будет достаточно любезен, чтобы объяснить, где я иду неправильно?Я все еще новичок в наследовании прототипов в javascript.