js實現繼承的方式總結

2022-03-28 05:25:16 字數 1246 閱讀 8470

js實現繼承的5種方式

以下 均為 es5 的寫法:

js是門靈活的語言,實現一種功能往往有多種做法,ecmascript沒有明確的繼承機制,而是通過模仿實現的,根據js語言的本身的特性,js實現繼承有以下通用的幾種方式

1.使用物件冒充實現繼承(該種實現方式可以實現多繼承)

實現原理:讓父類的建構函式成為子類的方法,然後呼叫該子類的方法,通過this關鍵字給所有的屬性和方法賦值

function parent(firstname)

}function child(firstname)

}var mychild=new child("李");

mychild.saysomething();

2.採用call方法改變函式上下文實現繼承(該種方式不能繼承原型鏈,若想繼承原型鏈,則採用5混合模式)

實現原理:改變函式內部的函式上下文this,使它指向傳入函式的具體物件

function parent(firstname)

}function child(firstname)

this.getname=function()

}var child=new child("張");

parent.call(child,child.getname());

child.saysomething();

this.saysomething=function()  

this.getname=function()

4.採用原型鏈的方式實現繼承

實現原理:使子類原型物件指向父類的例項以實現繼承,即重寫類的原型,弊端是不能直接實現多繼承

function parent()

}function child(firstname)

}child.prototype=new parent();

var child=new child("張");

child.saysomething();

5.採用混合模式實現繼承

function parent()

parent.prototype.sayparent=function()

function child(firstname)

}child.prototype=new parent();

var child=new child("張");

child.saysomething();

child.sayparent();

JS繼承的實現方式

前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...

JS繼承的實現方式

前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...

JS繼承的實現方式

既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心 將父類的例項作為子類的原型 function cat cat.prototype new animal ca...