<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 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

    主站蜘蛛池模板: 免费精品久久久久久中文字幕 | 99re6在线视频精品免费| 色综合久久精品中文字幕首页| 无夜精品久久久久久| 91精品国产91久久久久久青草| 久久精品一本到99热免费| 精品久久久久久无码国产| 97久久久精品综合88久久| 亚洲欧美日韩国产一区二区三区精品| 91热成人精品国产免费| 国产精品9999久久久久| 亚洲精品午夜无码专区| 精品视频久久久久| 一区二区精品在线| 国产福利91精品一区二区三区| 无码精品黑人一区二区三区| 久久久久久久久久免免费精品| 88国产精品无码一区二区三区 | 国产亚洲欧美精品久久久| 色婷婷久久久SWAG精品| 国产精品99| 亚洲精品国产成人99久久| 91精品国产乱码久久久久久| 日韩精品人妻系列无码专区免费| 欧美精品丝袜久久久中文字幕| 国产精品久久久天天影视香蕉| 欧美一区二区精品| 成人国产精品高清在线观看| 国产精品日本一区二区不卡视频| 亚洲色精品88色婷婷七月丁香| 日本Aⅴ大伊香蕉精品视频| 久久国产香蕉一区精品| 国产成人精品免费视频大全| 亚洲精品欧美综合| 欧美激情精品久久久久| 国产精品素人搭讪在线播放| 97久久久精品综合88久久| 99re这里只有精品热久久| 国产成人精品免费视频大全麻豆 | 亚洲永久永久永久永久永久精品| 97久久精品无码一区二区|