js 深入原型之三繼承

2021-08-18 05:26:03 字數 2190 閱讀 4646

1、通過改變原型指向來實現繼承:

缺陷:實現繼承的同時直接初始化了屬性,繼承過來的屬性的都是一樣的

解決:繼承的時候不用改變原型的指向,直接使用借用建構函式(call方法)

function person(name,age,***,weight)

person.prototype.sayhi=function()

//借用建構函式:call(例項物件,屬性,屬性.....)

function student(name,age,***,weight,score)

var stu1=new student('小明',20,'女',87);

console.log(stu1.name+' || '+stu1.age+' || '+stu1.***+' || '+stu1.weight);

var stu2=new student('小成',21,'男',90);

console.log(stu2.name+' || '+stu2.age+' || '+stu2.***+' || '+stu2.weight);

var stu3=new student('小張',19,'男',98);

console.log(stu3.name+' || '+stu3.age+' || '+stu3.***+' || '+stu3.weight);

stu3.sayhi();

結果:

2、組合繼承:改變原型的指向(解決方法的繼承,例項化不用傳參)+借用建構函式(解決屬性的復用繼承)

function person(name,age,***,weight)

person.prototype.sayhi=function()

//借用建構函式:call(例項物件,屬性,屬性.....)

function student(name,age,***,weight,score)

//不用傳參

student.prototype=new person();

//自定義的方法

student.prototype.school=function()

var stu1=new student('小明',20,'女',87);

console.log(stu1.name+' || '+stu1.age+' || '+stu1.***+' || '+stu1.weight);

var stu2=new student('小成',21,'男',90);

console.log(stu2.name+' || '+stu2.age+' || '+stu2.***+' || '+stu2.weight);

var stu3=new student('小張',19,'男',98);

console.log(stu3.name+' || '+stu3.age+' || '+stu3.***+' || '+stu3.weight);

//繼承的方法

stu3.sayhi();

//自己的方法

stu3.school();

結果:

小明  ||  20  ||  女  ||  87

小成  ||  21  ||  男  ||  90

小張  ||  19  ||  男  ||  98

你好啊啊啊

我是大學生

3、拷貝繼承:把乙個物件中的屬性或者方法直接複製到另乙個物件中

4、陣列中函式呼叫

var  arr=[

function (),

function (),

function (),

function (),

function (),

function ()

];arr.foreach(function(ele));

JS原型與繼承(三) 原型鏈

先把基本 拿出來 function person name var p1 newperson 張三 很重要的幾個知識點 1.在物件中查詢乙個屬性時,會先從本身查詢,如果查詢不到會到prototype中查詢。即可以引申,所有物件中都有constructor 這個屬性是在prototype中的 2.原型...

js繼承(一)原型繼承

正式開工了 繼承在js中有著很大的地位,同時理解起來也比較抽象,我將分幾篇部落格來記錄js的繼承。原型繼承 相當於將父類物件與子類物件打通橋梁,可以靈活實現追加屬性與行為 子類擁有父類的一切行為和屬性。特點 非常純粹的繼承關係,例項是子類的例項,也是父類的例項 父類新增原型方法 原型屬性,子類都能訪...

js繼承,原型鏈繼承

1 乙個型別的物件能夠訪問另外乙個型別的屬性和方法 2 類與類之間的關係 類就是眾多例項共有的屬性和方法的乙個抽象 function animal name animal.prototype.say function function dog 把子類的原型指向父類的例項 dog.prototype ...