• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. javaScript工廠方式原始的方式

        時間:2024-09-12 17:51:38 JavaScript 我要投稿
        • 相關推薦

        javaScript工廠方式原始的方式

          因為對象的屬性可以在對象創建后動態定義,這在 JavaScript 最初引入時都會編寫類似下面的代碼

        javaScript工廠方式原始的方式

          復制代碼 代碼如下:

          var oCar = new Object;

          oCar.color = "blue";

          oCar.doors = 4;

          oCar.mpg = 25;

          oCar.showColor = function() {

          alert(this.color);

          };

          在上面的代碼中,創建對象 car。然后給它設置幾個屬性:它的顏色是藍色,有四個門,每加侖油可以跑 25 英里。最后一個屬性實際上是指向函數的指針,意味著該屬性是個方法。執行這段代碼后,就可以使用對象 car。不過這里有一個問題,就是可能需要創建多個 car 的實例,這顯然不是很好的方式。

          解決方案:工廠方法

          要解決該問題,開發者創造了能創建并返回特定類型的對象的工廠函數。例如,函數 createCar() 可用于封裝前面列出的創建 car 對象的操作:

          復制代碼 代碼如下:

          function createCar(sColor,iDoors,iMpg) {

          var oTempCar = new Object;

          oTempCar.color = sColor;

          oTempCar.doors = iDoors;

          oTempCar.mpg = iMpg;

          oTempCar.showColor = function() {

          alert(this.color);

          };

          return oTempCar;

          }

          var oCar1 = createCar("red",4,23);

          var oCar2 = createCar("blue",3,25);

          oCar1.showColor(); //輸出 "red"

          oCar2.showColor(); //輸出 "blue"

          調用此工廠函數,將創建新對象,并賦予它所有必要的屬性,給 createCar() 函數加上參數,即可為要創建的 car 對象的 color、doors 和 mpg 屬性賦值。這使兩個對象具有相同的屬性,卻有不同的屬性值。該方法有個不好的地方在于每創建一個car對象(即調用一次createCar函數)都會重復的為每個對象創建showColor 方法,而這時沒有必要的而事實上,每個對象都共享同一個函數。于是我們嘗試在函數之外去聲明其方法屬性。

          在工廠函數外定義對象的方法

          有些開發者在工廠函數外定義對象的方法,然后通過屬性指向該方法,從而避免這個問題:

          復制代碼 代碼如下:

          function showColor() {

          alert(this.color);

          }

          function createCar(sColor,iDoors,iMpg) {

          var oTempCar = new Object;

          oTempCar.color = sColor;

          oTempCar.doors = iDoors;

          oTempCar.mpg = iMpg;

          oTempCar.showColor = showColor;

          return oTempCar;

          }

          var oCar1 = createCar("red",4,23);

          var oCar2 = createCar("blue",3,25);

          oCar1.showColor(); //輸出 "red"

          oCar2.showColor(); //輸出 "blue"

          在上面這段重寫的代碼中,在函數 createCar() 之前定義了函數 showColor()。在 createCar() 內部,賦予對象一個指向已經存在的 showColor() 函數的指針。從功能上講,這樣解決了重復創建函數對象的問題;但是從語義上講,該函數不太像是對象的方法。

          

        【javaScript工廠方式原始的方式】相關文章:

        正確的洗發方式06-17

        孩子慢跑的方式06-26

        員工激勵的方式10-14

        回憶營銷的方式05-23

        演講與口才方式07-28

        高空跳傘的方式10-16

        兔子的飼養方式06-27

        化妝的正確方式07-30

        日本留學方式08-29

        企業做網絡營銷推廣方式的五種方式08-22

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲日韩AV不卡在线播放 | 天堂在线天堂在线视频 | 亚洲人成aⅴ在线播放 | 中文欧美亚洲欧日韩范冰冰 | 亚洲精品第一国产野狼 | 日本欧美在线播放免费人成 |