<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 前提 首先我們應該明白創建一個JS對象的具體實例是實例化的過程,而實例化是通過new關鍵字實現的,這個對象是含有constructor的,一般的核心對象都會具有constructor以便創建其實例。因此,如果要對我們自己創建的JS對象進行實例化的話,則這個對象必須具有constructor。 構造函數的基本架構為: ~~~ function myConstructor(a){ /*某些代碼*/ } ~~~ ## 靜態成員 JS中的靜態成員是通過點操作符添加到對象實例中,并且只存在于對象的一個具體實例,不存在于構造函數中,因此通過new關鍵字創建的對象實例不具有原對象的靜態成員。 添加對象靜態成員的小例: ~~~ <script type="text/javascript"> var myObject = new Object(); //添加靜態屬性 myObject.name="lyg"; //添加靜態方法 myObject.alertName = function(){ alert(this.name); } //執行添加的靜態方法 myObject.alertName() </script> ~~~ 靜態成員只存在于對象的一個具體實例,不存在于構造函數中的實例: ~~~ <script type="text/javascript"> function myConstuctor(){ } myConstuctor.myname = "lyg"; myConstuctor.alertName = function(){ alert(this.myname); } //myConstuctor.alertName(); var myObj = new myConstuctor(); myObj.alertName(); //這里會報錯 </script> ~~~ ## 公有成員 能夠使實例化的對象包含的成員稱為公有成員,添加公有成員有兩種方法:在構造函數中用this關鍵字添加公有屬性或公有方法(特權成員);另外一種方法便是修改函數原型,即prototype屬性 添加對象公有成員的小例: ~~~ <script type="text/javascript"> function myConstuctor(){ this.message="abc"; } var myObj = new myConstuctor(); //alert(myObj.message); alert(myObj.myName); //這里將顯示undefined myConstuctor.prototype.myName = 'lyg'; alert(myObj.myName); //這里顯示'lyg' </script> ~~~ 實例中也正說明了當修改一個對象的原型時,任何繼承該對象的對象和已經存在的所有實例都會繼承同樣的變化。而需要提及一點的是,公有成員只能在被實例化的實例中可用,而在構造函數自身中是無效的。 ## 私有成員 在構造函數中定義的變量和函數成為私有成員,私有成員只有在構造函數中才能訪問,因此在實例化執行構造函數的過程中,將訪問其成員。 添加私有成員的小例: ~~~ <script type="text/javascript"> function myConstuctor(message){ this.message = message; //公有屬性 var myOwner = this; //私有屬性 function alertMessage(){ //私有方法 alert(myOwner.message); } alertMessage(); } var myObj = new myConstuctor("Hello Wold"); //這里將彈出窗口顯示"Hello Wold" </script> ~~~ ## 特權成員 特權成員也屬于公有成員的一類,之前已有提及:在構造函數中用this關鍵字添加的公有屬性或公有方法。根據其特殊的名稱,其特殊的權利在于:與在prototype定義的公有成員不同,由于其是在構造函數中定義的,因此特權成員可以訪問私有成員。在此將不予舉例。 ## 總結 根據靜態成員的定義方法可知,其與prototype是同級的屬性,可以被繼承的成員在prototype之下,據此可知,靜態成員只適用于對象的一個具體實例。 公有的prototype成員是對象藍圖的一部分,適用于通過new關鍵字實例化該對象的每一個實例。 私有和特權成員的相同之處在于,它們都在構造函數內部,會帶到構造函數的每一個實例中,會占用大量內存。 在合適的場合應用合適的成員,將使我們的程序更加優化。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看