您好,登錄后才能下訂單哦!
這篇文章主要介紹了js如何實現原型鏈繼承,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
既然要實現繼承,那么首先我們得有一個父類,代碼如下:
// 定義一個動物類 function Animal (name) { // 屬性 this.name = name || 'Animal'; // 實例方法 this.sleep = function(){ console.log(this.name + '正在睡覺!'); } } // 原型方法 Animal.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); };
核心: 將父類的實例作為子類的原型
function Cat(){ } Cat.prototype = new Animal(); Cat.prototype.name = 'cat'; // Test Code var cat = new Cat(); console.log(cat.name); console.log(cat.eat('fish')); console.log(cat.sleep()); console.log(cat instanceof Animal); //true console.log(cat instanceof Cat); //true
特點:
非常純粹的繼承關系,實例是子類的實例,也是父類的實例
父類新增原型方法/原型屬性,子類都能訪問到
簡單,易于實現
缺點:
要想為子類新增屬性和方法,可以在Cat構造函數中,為Cat實例增加實例屬性。如果要新增原型屬性和方法,則必須放在new Animal()這樣的語句之后執行。
無法實現多繼承
來自原型對象的所有屬性被所有實例共享
創建子類實例時,無法向父類構造函數傳參
感謝你能夠認真閱讀完這篇文章,希望小編分享的“js如何實現原型鏈繼承”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。