我們先來講一個故事,一個大大的池塘,里面有很多魚。這是屬于我們大家的池塘所以里面的魚我們都可以吃,但是我們也會從集市買一些魚放在家里,那么放在家里的魚肯定是屬于我們私人的,外人是不會擁有的。那么在js里我們就把這個池塘稱為原型對象,池塘里面我們所共享的魚稱為原型中的屬性及方法,而我們自己的魚稱為構造函數中的屬性及方法,我們是什么呢?對了,我們是對象的實例。
以上是為了讓大家能夠趣味性的對prototype有一個概念,接下來就通過代碼具體總結一下prototype~
一、理解prototype
我們創(chuàng)建的每一個函數都有一個prototype屬性,這個屬性是一個指向對象的指針。
構建對象中有一種模式叫做原型模式,意思是將對象實例所不可共享的屬性及方法定義在構造函數中,而將可共享的屬性及方法放在原型對象中,也就是prototype指向的對象中。以下是用原型模式創(chuàng)建的一個對象:
1 function person(name, age) { 2 this.name = name; 3 this.age = age; 4 } 5 person.prototype = { 6 sayName: function() { 7 console.log(this.name); 8 } 9 };10 11 var p1 = new person("Wind", 20);12 p1.sayName(); // "Wind"13 14 var p2 = new person("Nic", 20);15 p2.sayName(); // Nic
延伸閱讀
學習是年輕人改變自己的最好方式