JS中的繼承

2021-09-25 13:31:17 字數 1724 閱讀 2669

1. js 中沒有繼承的概念,我們只能使用原型鏈模擬繼承

乙個類people: 人類

人類的方法屬性: 姓名 性別 年齡 吃 睡

好人類:helpother , kindheard

壞人類:bitother , heard

人類是好人類與壞人的交集,不是並集好人與壞人都繼承了人類,但是豐富了人類

我們可以建立人類,讓擁有人類特點的人群繼承人類,可以減少其他類的**數量和工作量,這種思維叫做繼承

2. js 中模擬繼承的原理:子類的原型

一、繼承

3. js 中沒有繼承的概念,我們只能使用原型鏈模擬繼承

乙個類people: 人類

人類的方法屬性: 姓名 性別 年齡 吃 睡

好人類:helpother , kindheard

壞人類:bitother , heard

人類是好人類與壞人的交集,不是並集好人與壞人都繼承了人類,但是豐富了人類

我們可以建立人類,讓擁有人類特點的人群繼承人類,可以減少其他類的**數量和工作量,這種思維叫做繼承

4. js 中模擬繼承的原理:子類的原型等於父類的原型物件

5.繼承:

1) 實現繼承核心語句 方法的繼承

好人的原型等於人類的例項化物件

goodman.prototype = new people();

2)實現繼承的核心語句 屬性的繼承

this.constructor 是pople,好人類內部執行人類,

將人類的this指向好人類,將引數傳遞給人類,實現好人類對人類屬性的繼承

1. in 運算

用於判斷乙個屬性是否存在於乙個物件中,存在返回真,不存在返回假

in 運算可以查詢自身屬性,也可以進行原型鏈查詢

for in

列舉:將事情可能發生的情況 一一枚舉出來,

但是系統預設的屬性,如 constructor 等屬性是不可列舉的

for in 可以將原型鏈上所有的自己新增的屬性列舉出來

2. hasownproperty

這個方法是 object.prototype,所以這個方法是任何物件都可以呼叫

表示判斷某個物件自己內部是否包含某乙個屬性,存在返回真,不存在返回假

這個方法不會查詢原型鏈,僅僅查詢這個物件本身是否包含某乙個屬性

3. 使用點語法判斷某屬性是否存在於乙個物件中

obj.e 如果返回 undefined,說明 e 不存在於 obj 中,會進行原型鏈查詢

4. instanceof

類: class

例項: instance

a instance b

驗證物件 a 是不是類 b 的例項化物件

運算原理:

遍歷 hellokiity 這個物件原型鏈上的每乙個原型物件,

如果遍歷到這個原型物件是某乙個建構函式的原型,

那麼就認為hellokitty是這個建構函式的例項化物件,返回true

5. isarray

是es5新方法,用於驗證乙個物件是不是陣列

array.isarray(arr); // ie 9 開始相容

6. isprototypeof

用來判斷,要檢查物件的原型鏈的物件,是否存在於指定的物件的例項中,是返回真,否則返回假

判斷某個建構函式的原型,是否存在於指定物件的原型鏈中,是返回真 否則返回假

js中的繼承

繼承有兩種方式 介面繼承和實現繼承。介面繼承只繼承方法簽名,而實現繼承則繼承實際的方法。由於函式沒有簽名,在ecmascript中無法實現介面繼承。ecmascript只支援實現繼承,而且實現繼承主要依靠原型鏈來實現。下面介紹幾種js的繼承 原型鏈繼承實現的本質是重寫原型物件,代之以乙個新型別的例項...

JS中的繼承

定義乙個動物類 實現下面的繼承 function animal name animal.prototype.eat function food 1 原型鏈繼承 核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.prototype.n...

JS中的繼承

對於乙個從事前端開發的工作者,如果對js中的原型 原型鏈 繼承等這些了解不透徹,說明你還是個初學者哦!下面我們來談談繼承這些事吧 建構函式中有乙個 prototype的指標,指向其原型物件,原型物件中有乙個constructor指標指向建構函式,例項中有乙個 prototype 指標指向原型物件。那...