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>