JavaScript實現繼承的混合方式

2021-09-08 10:31:31 字數 717 閱讀 4534

function animal(age)

animal.prototype.sayage = function();

function dog(age,name)

dog.prototype = new animal();

dog.prototype.sayname = function();

var dog = new dog(15,"dog");

dog.sayname();

dog.sayage();

對於類animal來說,它有乙個字段屬性age及函式屬性sayage,sayage方法的定義採用的是原型方式。dog類要繼承animal,其欄位屬性除了age外還有name,通過animal.call(this,age);可以實現dog繼承animal的字段屬性age並將其初始化了。call方法的第乙個引數為繼承的類的this指標,第二個引數為animal類的建構函式的引數。實際上,只是通過call方法就可以實現繼承,但唯一的要求是父類的函式屬性要在建構函式中定義,這對於這裡的函式屬性使用原型方式定義來說就不適合了(採用原型方式定義函式屬性比在建構函式內定義更直觀一些)。要想繼承animal的原型方式定義的函式屬性,需要的語句就是「dog.prototype = new animal();」。而dog類中的sayname()函式則是其自身的函式屬性了。

除了這個最經典的實現繼承的方式外,目前還有一些免費的庫可供使用。但想到形形色色的庫,頭就大了,有時間有必要時再研究吧!

JavaScript的繼承實現方式

function a function b 測試 var testb new b alert testb.name json 2.實現繼承,方法二 prototype模式 function a function b b.prototype new a b.prototype.constructor ...

JavaScript實現繼承方式

student.prototype new person 得到乙個 person 例項,並且這個例項指向構造器的 prototype 屬性和呼叫了建構函式,因為呼叫的建構函式,而 student 只是乙個類,並沒有例項化,只為了繼承,呼叫建構函式建立乙個例項,引數的問題就不容易解決。例如 當 per...

JS實現繼承 JavaScript

定義乙個父類 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 複製 1.原型鏈繼承核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.proto...