js 繼承概述

2021-09-07 10:23:45 字數 1359 閱讀 6353

上文講述過js實現物件導向,一定是能夠實現繼承的效果的。儘管說非常多的js框架都幫助我們實現了繼承的功能。或者說在日常的工作和學習中我們壓根就用不到js的繼承,可是我們還是須要了解一下js中繼承。以方便我們閱讀框架中的繼承是怎樣實現的。在以下的文章中我會給大家模擬一下js中繼承的實現。

先來看一下以下建立物件的一種方式:

/*

* 物件工廠

*/function objectfactory(jsonobj)

if(typeof jsonobj == "object")

} return objectentity;

}var person = objectfactory();

var person = new person();

console.info(person+"--"+person);// [object object] -- function objectentity(){}

console.info(person.pname);

console.info(person.***);

objectfactory接受的是乙個json物件jsonobj作為引數,在這個函式內部建立了乙個函式objectentity。然後就推斷輸入的jsonobj

是否是物件型別。假設是那麼就遍歷這個json物件,然後把遍歷出來的每乙個值都附加objectentity的原型上面,請注意,以下返回的

就是objectentity(能夠參考上節中的js閉包概念),也就是說person指向的就是objectentity,那麼person的原型上面自然的就有了

pname,***等屬性。

假設上述可以理解的話,我們就行進行下一步的繼承的實現(類似於非常多框架中的繼承底層實現)

/*

* 繼承

*/function inherit(obj,prop)

if(typeof obj=="object")

}else }

return f;

}var animal = inherit();

var dog = inherit(animal,);

var dog = new dog;

console.info(dog.type);

console.info(dog.name);

在這裡就不再對inherit這個函式進行具體的解釋,讀者能夠自行分析,在這裡dog 繼承了animal。那麼dog建立出來的物件dog自然的就有了animal中的各個屬性。

js繼承(一)原型繼承

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

js繼承,原型鏈繼承

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

js繼承 到繼承結束

說到繼承,其它語言裡可能有兩種 介面繼承是繼承方法簽名,而實現繼承則繼承實際方法。es函式沒有簽名,不能實現介面繼承,只支援實現繼承,而實現繼承主要依靠原型鏈。這兩句話,說來輕鬆,理解來不易,且行且珍惜吧 所以,理解原型鏈是掌握繼承的必要條件。乙個原型物件等與另乙個型別的例項 為什麼demo.con...