2
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
とオブジェクトタイプをチェックすることができなくなりました。Javascriptのobject.createとisPrototypeOfは
誰かがisPrototypeOfを使用してチェックすることを提案しました - 私のコードが上記のように何か間違っていると確認すると、false
が返されます。
誰かが私が間違っていることを説明するのに十分なほど優しい人ですか?私はまだjavascriptでプロトタイプの継承に新しいです。