js原型鏈繼承

2021-10-23 17:28:20 字數 1137 閱讀 5377

function

foo();

var foo=

newfoo()

;console.

log(foo.__proto__===foo.prototype)

;//true

console.

log(foo.__proto__===foo.constructor.prototype)

;//ture

function

foo();

var foo=

newfoo()

;3 console.

log(foo.__proto__)

;//指向foo建構函式的原型

4 console.

log(foo.__proto__.__proto__)

;//指向object建構函式的原型

5 console.

log(foo.__proto__.__proto__.__proto__)

;//null

function

foo(name)

foo.prototype.

myname

=function()

function

bar(name)

bar.prototype=

newfoo()

;//bar的原型指向foo的例項

var bar=

newbar

("tom");

bar.

myname()

;//輸出:」my name is tom「

以上**實現了bar建構函式繼承了foo建構函式的myname()方法。繼承是通過原型鏈的查詢來實現的,原型鏈的查詢規則是:當例項呼叫乙個屬性(或方法)時,首先會在這個例項中查詢該屬性(或方法),在沒有找到的情況下,會繼續在這個例項的原型上查詢,如果依舊找不到這個屬性(或方法),搜尋過程會沿著原型鏈向上查詢,直到原型鏈的末端,整個查詢過程才會停止。上面例子的原型鏈關係如圖:

js繼承,原型鏈繼承

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

js 原型鏈繼承

建構函式的prototype的 proto 預設指向object.prototype,是繼承object。function animal age animal.prototype.getage function animal.prototype.eat function function dog n...

js原型鏈繼承

方式1 原型鏈繼承 1.套路 1.定義父型別建構函式 2.給父型別的原型新增方法 3.定義子型別的建構函式 4.建立父型別的物件賦值給子型別的原型 5.將子型別原型的構造屬性設定為子型別 6.給子型別原型新增方法 7.建立子型別的物件 可以呼叫父型別的方法 2.關鍵 1.子型別的原型為父型別的乙個例...