1. 程式人生 > 資訊 >日常 42 元:和府撈麵牛小腩面 9.9 元清倉

日常 42 元:和府撈麵牛小腩面 9.9 元清倉

原型,每一個javascript物件(除null外)建立的時候,就會與之關聯另一個物件,這個物件就是我們所說的原型,每一個物件都會從原型中“繼承”屬性。

一,prototype

1,在JavaScript中,每個函式都有一個prototype屬性,這個屬性指向函式的原型物件。

2,prototype是函式和類才有的屬性,例項物件是沒有的

3,建構函式可以給prototype新增屬性,該屬性可以讓全部該函式建立的例項物件共享

4,prototype的constructor指向其建構函式

function one(){}

console.log(one.prototype.constructor
===one)//true
function student(name){
    this.name=name
}
student.prototype.state=1
class student2{
    constructor(name){
        this.name=name
    }
}

student2.prototype.state=2

let a1=new student(10)
let a2=new student2(15)

console.log(a1.state)//1
console.log(a2.state)//2

二,__proto__

1,每個非空物件(排除null)都會有該屬性,這個屬性會指向該物件的原型

function one(){}

let item=new one()

console.log(item.__proto__===one.prototype)

 

三,constructor

每個原型都有construcotr,指向關聯的建構函式

四,最終指向

每個物件都有原型,每個原型也有原型,直到終點Object,這就構成了鏈條狀,也就是所謂的原型鏈