JS-構造函數模式代碼實戰和總結-極客
阿新 • • 發佈:2017-06-05
指向 spa ... 一個 構造 等等 nbsp log this
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script> 9 //構造函數模式代碼實戰和總結 10 11 //1 , 用戶床墊特定類型的對象 12 //2,JS構造函數比較特殊的地方 new 13 //3, 其他的語言裏,比如php裏人家實現,有一個關鍵字創建一個類14 //4,此時的zaomen是一個構造函數,又充當類的概念 15 function zaomen(huawen){ 16 if (!(this instanceof zaomen)) { 17 return new zaomen(); 18 } 19 //定義私有變量 20 var _huawen = ‘普通‘; 21 //如果傳遞了參數 huawen 22 if(huawen){ 23 _huawen = huawen; 24 }25 this.suo=‘普通的‘; 26 this.huawen = _huawen; 27 this.create = function(){ 28 return "【鎖頭】"+this.suo+"[花紋]"+this.huawen; 29 } 30 }; 31 32 var xiaozhang = zaomen(); 33 var a = xiaozhang.create(); 34 alert(‘xiaozhang‘+a); 35 var xiaoli =newzaomen(‘絢麗‘); 36 alert(‘xiaoli‘+xiaoli.create()); 37 //alert(a);彈出錯誤。因為此時create的 this.suo.. ....等等的this指向window對象 所以window沒有此些屬性 得 new一個 所以前面進行一個判段 38 //也可以 var xiaozhang = new zaomen(); 39 40 </script> 41 42 <script> 43 //構造函數和單例模式一一相互對應的。一下修改代碼 44 //aa公司 45 var AA = { 46 function:zaomen(huawen){ 47 if (!(this instanceof zaomen)) { 48 return new zaomen(); 49 } 50 //定義私有變量 51 var _huawen = ‘普通‘; 52 //如果傳遞了參數 huawen 53 if(huawen){ 54 _huawen = huawen; 55 } 56 this.suo=‘普通的‘; 57 this.huawen = _huawen; 58 this.create = function(){ 59 return "【鎖頭】"+this.suo+"[花紋]"+this.huawen; 60 } 61 }; 62 } 63 64 //BB公司 65 var BB = { 66 function:zaomen(huawen){ 67 if (!(this instanceof zaomen)) { 68 return new zaomen(); 69 } 70 //定義私有變量 71 var _huawen = ‘普通‘; 72 //如果傳遞了參數 huawen 73 if(huawen){ 74 _huawen = huawen; 75 } 76 this.suo=‘普通的‘; 77 this.huawen = _huawen; 78 this.create = function(){ 79 return "【鎖頭】"+this.suo+"[花紋]"+this.huawen; 80 } 81 }; 82 } 83 84 var xiaozhang = new AA.zaomen(); 85 alert(‘xiaozhang‘+xiaozhang.create()); 86 87 var xiaoli = new BB.zaomen(‘絢麗‘); 88 alert(‘xiaoli‘+xiaoli.create()); 89 </script> 90 </body> 91 </html>
JS-構造函數模式代碼實戰和總結-極客