亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

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

主站蜘蛛池模板: 武山县| 成人无码区免费视频网站蜜臀| 石城县| 成人午夜天| 夜精品a一区二区三区| 台湾无码av一区二区三区| 内射中出日韩无国产剧情| 国产高清在线精品一区下载| 亚洲伊人天堂| 日本免费人成视频在线观看| 久久无码高潮喷水| 亚洲午夜天堂| 中文字幕成熟丰满人妻| 好了av四色综合无码| 无码aⅴ精品一区二区三区| 久久精品中文字幕第一页| 中国少妇内射xxxhd免费| 美女被躁出白浆视频播放| 中国老妇女毛茸茸bbwbabes| 人妻无码中文专区久久app| 玩肥熟老妇bbw视频| 色爱区综合五月激情| 在线精品视频一区二区三区| 亚洲an第二区国产精品| 亚洲欧洲偷自拍图片区| 人妻少妇精品视频二区| 精品国产aⅴ一区二区三区| 天天躁夜夜踩很很踩2022| 麻豆国产成人av高清在线| 无码少妇一区二区三区| 99精品国产久热在线观看| 伊人久久综合无码成人网| 91视频99| 秋霞国产精品一区二区| 欧美日韩国产的视频yw885| 国产精品.com| 中文字幕无码日韩欧免费软件| 超碰色偷偷男人的天堂| 国产日产精品_国产精品毛片| 成人精品一区二区三区电影| 郯城县|