javascript中的prototype和constructor


         今天把javascript重新溫習了一遍,覺得又進步了,這里說一下自己的收獲。

         javacript是一種神奇的語言,越來越喜歡這門語言了,對於解決問題特別方便。

         js里有一種一切都是變量的說法,比如一個函數:

         function a(){ var name="hello"; return name;}

         可以寫成:

         var a=function(){var name="hello"; return name;};

         這種寫法叫做函數對象文本標識記法。

         這樣,函數也可以作為參數傳遞,也可以定義成函數的局部變量。

         js里還有一種叫做一切都是對象的說法,沒有類的概念。

         容易困惑的是prototype和constructor。

         prototype即原型,原型是函數的屬性,也是一種對象。通過原型可以擴展對象的屬性,比如

         person{

               age:18,

               name:"lisan"

           };

          var a=new Person();

          a.prototype.getName=function (){return this.name};

          即為person增加了getName方法。

         constructor即構造器,構造器就是函數,函數就是構造器,是prototype的屬性,即對象實例的屬性,而prototype是函數的屬性。

         a.prototype.constructor==Person指向創建當前函數的構造函數。

         如果a.prototype={getName:function(){return this.name}},則原來的構造器被覆蓋了,

         a.prototype.constructor!=Person。用下面的修改過來

         a.prototype.constructor=Person,不然原型中的其他屬性和方法就消失了。

        

         

          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM