prototype الخاص به: ChildObject.prototype = Object.create (ParentObject.prototype)؛ثم تلقت
ChildObject الخاصة عن طريق ChildObject prototype : ChildObject.prototype.methodName = function () {...}؛من الممكن تجاوز طريقة وراثية. ويتم ذلك بنفس الطريقة - عن طريق إضافة طريقة إلى
ChildObject.prototype باستخدام نفس اسم الأسلوب الذي يتم تجاوزه. في ما يلي مثال Bird يتفوق على طريقة eat() الموروثة من Animal : وظيفة الحيوان () {}إذا كان لديك مثيل ،
Animal.prototype.eat = function () {
return "nom nom nom"؛
}؛
وظيفة الطيور () {}
// وراثة جميع الطرق من الحيوان
Bird.prototype = Object.create (Animal.prototype)؛
// Bird.eat () يتخطى Animal.eat ()
Bird.prototype.eat = function () {
عودة "بيك بيك بيك"؛
}؛
let duck = new Bird(); واستدعاء duck.eat() ، هذه هي الطريقة التي يبدو جافا سكريبت لأسلوب على duck's prototype سلسلة: 1. بطة => هل تأكل () المعرفة هنا؟ رقم 2. الطيور => هل تناول الطعام () المعرفة هنا؟ => نعم. تنفيذ ذلك ووقف البحث. 3. يتم تعريف Animal => eat () أيضًا ، لكن JavaScript توقفت عن البحث قبل الوصول إلى هذا المستوى. 4. Object => توقف JavaScript عن البحث قبل الوصول إلى هذا المستوى. fly() لـ Penguin بحيث تُرجع "Alas ، هذا طائر بلا fly() ". penguin.fly() السلسلة "للأسف ، هذا طائر بلا طيار".
testString: 'assert(penguin.fly() === "Alas, this is a flightless bird.", "penguin.fly() should return the string "Alas, this is a flightless bird."");'
- text: يجب أن ترجع طريقة bird.fly() "أنا bird.fly() !"
testString: 'assert((new Bird()).fly() === "I am flying!", "The bird.fly() method should return "I am flying!"");'
```