js原型和原型鏈

2021-10-17 20:54:35 字數 1595 閱讀 9084

原型和原型鏈

什麼是原型?

在js中,每當定義乙個函式資料型別(objectfunctionarrrydate等)的時候都會自帶乙個prototype物件,這個物件就是我們說的原型。

原型有什麼作用?

先來看乙個例子:

function

person()

}let person1=

newperson()

;let person2=

newperson()

;console.

log(person1.showname===person2.showname)

很容易就直到輸出的是false,因為兩個例項物件指向的不是同乙個地方。那再看下面這個例子:

function

person

(name)

person.prototype.

showname

=function()

let person1=

newperson

("zhangsan");

let person2=

newperson

("lisi");

console.

log(person1.showname===person2.showname)

這樣輸出的結果就是true了,因為兩個例項物件共享同乙個方法。所以我們就能知道原型的作用就是實現資料的共享

什麼是原型鏈

簡單來說就是原型與原型層層線連線的過程稱為原型鏈,原型鏈是通過proto鏈結起來的,所以為什麼例項物件可以使用建構函式的prototype原型上的屬性和方法,就是因為例項物件有__proto__的存在,我們看的例子:

function

person()

var person =

newperson()

;console.

log(person.__proto__ === person.prototype)

;

最終輸出的就是true,下面是原型鏈的展示

基於原型鏈的查詢方式

function

person()

person.prototype.name=

"lisi"

object.prototype.name=

"wangwu"

let person1=

newperson()

;console.

log(person1.name)

JS原型和原型鏈

建立建構函式 function word words word.prototype 建立例項 var w new word hello world w.print function w.print hello world w.alert hello world function.prototype....

js原型鏈和原型

1 原型 在js中一切皆物件,那原型也是乙個物件,通過原型可以實現物件的屬性繼承,js的物件中包含著乙個 prototype 內部屬性,這個屬性所對應的就是物件的原型。prototype 作為物件的內部屬性不能被直接訪問,所以為了方便檢視乙個物件的原型,提供了 proto 這個非標準的訪問器,在js...

JS 原型和原型鏈

先宣告乙個建構函式 function people name,age 把類的方法寫在建構函式原型物件中,子類就不能再通過呼叫父類建構函式來繼承方法 屬性還是可以繼承 給people的原型新增方法 people.prototype.speak function 建立子類繼承people functio...