原型和原型鏈
什麼是原型?在js中,每當定義乙個函式資料型別(
object
、function
、arrry
、date
等)的時候都會自帶乙個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...