JS基础_使用工厂方法创建对象(了解下就行了,用的不多)

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             
 8             /*
 9              * 创建一个对象
10              */
11             var obj = {
12                     name:"孙悟空",
13                     age:18,
14                     gender:"",
15                     sayName:function(){
16                         alert(this.name);
17                     }
18             };
19             
20             //--------------------------------------------------------------------------
21             
22             /*
23              * 使用工厂方法创建对象
24              *     通过该方法可以大批量的创建对象
25              */
26             function createPerson(name , age ,gender){
27                 //创建一个新的对象 
28                 var obj = new Object();
29                 //向对象中添加属性
30                 obj.name = name;
31                 obj.age = age;
32                 obj.gender = gender;
33                 obj.sayName = function(){
34                     alert(this.name);
35                 };
36                 //将新的对象返回
37                 return obj;
38             }
39             
40             /*
41              * 用来创建狗的对象
42              */
43             function createDog(name , age){
44                 var obj = new Object();
45                 obj.name = name;
46                 obj.age = age;
47                 obj.sayHello = function(){
48                     alert("汪汪~~");
49                 };
50                 
51                 return obj;
52             }
53             
54             var obj2 = createPerson("猪八戒",28,"");
55             var obj3 = createPerson("白骨精",16,"");
56             var obj4 = createPerson("蜘蛛精",18,"");
57             
58             /*
59              * 使用工厂方法创建的对象,使用的构造函数都是Object
60              *     所以创建的对象都是Object这个类型,
61              *     就导致我们无法区分出多种不同类型的对象
62              */
63              
64             //创建一个狗的对象
65             var dog = createDog("旺财",3);
66             
67             console.log(JSON.stringify(dog));//{"name":"旺财","age":3}
68             console.log(JSON.stringify(obj4));//{"name":"蜘蛛精","age":18,"gender":"女"}
69             
70             
71         </script>
72     </head>
73     <body>
74     </body>
75 </html>

 

posted @ 2017-10-24 22:48  星辰郎周  阅读(414)  评论(0编辑  收藏  举报