一、原型模式:
這個隻存在于函數中。
我們在建立的每一個函數中都有一個prototype(原型)屬性,這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以有特定類型
的所有執行個體共享的屬性和方法。按字面的意思:prototype就是通過調用構造函數而建立的那個對象執行個體的原型對象。
好處:可以讓所有特定類型對象執行個體共享它所包含的屬性和方法。
注意:prototype屬性隻存在于函數中,而不是函數的執行個體對象上。執行個體對象隻是繼承原型對象相應的屬性和方法。在寫構造函數的時候,不要通過變量來定義對象本身(函數也是對象)的prototype,這樣失去了原型對象的含義(每次調用都會去覆寫這些值。)
1 <script>
2 function People(){
3 People.prototype.name='ok';
4 People.prototype.age='22';
5 People.prototype.sayHI=function(){
6 console.log(this.name);
7 }
8 };
9 var p1=new people();
10 var p2=new people();
11 console.log(p1.age);
12 console.log(p2.age);
13 console.log(p1.__proto__)
14 console.log(people.prototype.constructor)
15 </script>
輸出:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO5QjMxUTMwATMtMjN4UzMwUDNxETMxATOxAjMtYDN4kTN58CXxATOxAjMvwlN0gTO1kzLcd2bsJ2Lc12bj5ycn9Gbi52YugTMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
學習是一種态度,堅持是質變的利器!