中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      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

      主站蜘蛛池模板: 国产午夜精品视频在线播放| 真人在线射美女视频在线观看| 精美亚洲一区二区三区| 安平县| 男女高潮免费观看无遮挡| 日韩av不卡一二三区| 日韩精品视频免费福利在线观看| 高潮喷水无遮挡毛片视频| 日本蜜桃视频在线观看| 日韩成人精品一区二区三区| 亚洲AV无码一区二区三区精神| 华坪县| 欧洲乱码伦视频免费| 久久久精品中文字幕免费| 国产强伦姧在线观看| 亚洲va在线va天堂va四虎| 国产免费自拍av一区| 91九色蝌蚪国产精品| 达州市| 保山市| 斗六市| 旬邑县| 镇远县| 合川市| 嵊州市| 鲜城| 国产视频网站一区二区三区| 欧美日韩国产在线成人网| 额济纳旗| 日韩中文字幕区一区有砖一区| av无码特黄一级| 国产粉嫩美女一区二区三| 中文字幕日产人妻久久| 精品三级久久久久久久| 国产精品va在线观看一| 一区二区视频观看在线| 东京热男人的av天堂| 中文字幕无码高清一区二区三区| 99久久亚洲国产高清观看| 精品女同免费在线观看| 亚洲电影久久久久久久9999|