札早早

导航

JS-构造函数模式代码实战和总结-极客

 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 =new zaomen('绚丽');
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>

 

posted on 2017-06-05 00:43  札早早  阅读(210)  评论(0编辑  收藏  举报