1 // 方法1 对象直接量
2 var obj1 = {
3 v1 : "",
4 get_v1 : function() {
5 return this.v1;
6 },
7 set_v1 : function(v) {
8 this.v1 = v;
9 }
10 };
11
12 // 方法2 定义函数对象
13 var Obj = function() {
14 var v1 = "";
15 this.get_v1 = function() {
16 return this.v1;
17 };
18 this.set_v1 = function(v) {
19 this.v1 = v;
20 }
21 };
22
23 // 方法3 原型继承
24 var Obj3 = new Function();
25 Obj3.prototype = {
26 v1 : "",
27 get_v1 : function() {
28 return this.v1;
29 },
30 set_v1 : function(v) {
31 this.v1 = v;
32 }
33 };
34
35 // 方法4 工厂模式
36 function loadObj() {
37 var tmp = new Object();
38 tmp.v1 = "";
39 tmp.get_v1 = function() {
40 return tmp.v1;
41 };
42 tmp.set_v1 = function(v) {
43 tmp.v1 = v;
44 };
45 return tmp;
46 }
47
48 obj1.set_v1('hello1');
49 alert(obj1.get_v1());
50
51 var obj2 = new Obj();
52 obj2.set_v1('hello2');
53 alert(obj2.get_v1());
54
55 var obj3 = new Obj3();
56 obj3.set_v1('hello3');
57 alert(obj3.get_v1());
58
59 var obj4 = loadObj();
60 obj4.set_v1('hello4');
61 alert(obj4.get_v1());
62
63 alert(obj1);
64 alert(obj2);
65 alert(obj3);
66 alert(obj4);
67
68 类的基本使用
69
70 /**
71 * 定义一个类User,js中使用构造函数实现
72 */
73 User = function(sname,spass){
74 //定义属性
75 this.name = sname;
76 this.pass = spass;
77 }
78
79 // js通过prototype动态为类添加方法
80 User.prototype.sayHello = function(){
81 alert("sayHello():Hello everyone!");
82 };
83
84 // js通过prototype动态为类添加属性
85 User.prototype.sex = "男";
86
87 // 测试函数
88 function testUser(){
89 var user = new User('Dream','123');
90 alert("姓名:"+user.name+"\n"+"密码:"+user.pass+"\n"+"性别:"+user.sex);
91 user.sayHello();
92 }