1 //工厂模式
2 function oj(){
3 var lio=new Object(); //创建对象,对象属性赋值
4 lio.name='lio';
5 lio.attr='男';
6 lio.hobby=function(){
7 var li=document.createElement("p");
8 var txt=document.createTextNode("三妹");
9 li.appendChild(txt);
10 document.body.appendChild(li);
11 };
12 return lio;
13 }
14 var person=oj();
15 //alert(person.name);
16
17 //构造函数模式
18 function oj2(name,age){
19 this.name=name;
20 this.age=age;
21 this.hobby=function(){
22 var li=document.createElement("p");
23 var txt=document.createTextNode("三妹");
24 li.appendChild(txt);
25 document.body.appendChild(li);
26 }
27 }
28 var person2=new oj2('三妹',123);
29 person2.hobby();
30 alert(person2.name);
31
32 //原型模式
33 function oj3(){
34 //this.name='lio';
35 }
36 oj3.prototype.name='lio';
37 oj3.prototype.love= function (name) {
38 alert("爱"+name);
39 };
40 var person3=new oj3();
41 //检测是在实例中还是在原型中
42 alert(person3.hasOwnProperty("name"));
43 alert(person3.hasOwnProperty("rename"));
44 person3.love('三妹');
45
46 //混合模式
47 function oj4(age) {
48 this.age=age;
49 this.rename='aaaa';
50 };
51 oj4.prototype={
52 constructor:oj4,
53 name:'lio',
54 age:123,
55 love: function (name) {
56 alert(name+"爱三妹");
57 }
58 };
59 var person4=new oj4(18);
60 alert(person4.hasOwnProperty("age"));//true
61 person4.love('lio');