每個函數都有prototype(原型)屬性,這個屬性是一個指針,指向一個對象,這個對象的用途是包含特定類型的所有實例共享的屬性和方法,即這個原型對像是用來給實例共享屬性和方法的。
而每個實例內部都有一個指向原型物件的指標。
原型模式
使用建構子的問題是,每個方法都要在每個實例上重新建立一遍,即在建構函數的不同實例上的同名函數是不相等的。而我們創建每個建構函數都有一個prototype(原型)屬性,這個屬性是個指針,指向一個對象,而這個對象的用途是包含可以由特定類型的所有實例共享的屬性和方法,我們使用這個原型對象來共享實例的屬性和方法的模式就叫原型模式
//原型模式创建对象 function Person(){ } Person.prototype.name='钟女士'; Person.prototype.age=80; Person.prototype.gender='女'; var person1= new Person(); console.log(person1) //简写原型模式 Person.prototype={ constructor:Person name:'钟女士', age:80, gender:'女' }
註:每個原型對像都有constructor屬性,由於簡寫模式重寫了預設的prototype對象,所以constructor也會被重新定義,不再指向他的建構函數,所以可以自己寫一個constructor屬性指向他的建構子
以上是js中什麼是原型的詳細內容。更多資訊請關注PHP中文網其他相關文章!