javascript学习---创建自己的对象
在javascript中内置了Object,Function,Array,String等内置对象,下面我们要创建自己的对象,要创建对象首先是创建对象的构造函数,然后再创建一个该对象的实例,这样我们就可以操作该对象了。
1.创建构造函数
Function对象是创建构造函数的起点。下面我们就用它来创建一个构造函数:
1 function myConstructor(message){
2 alert(message);
3 }
2 alert(message);
3 }
这不是我们平时创建的函数吗?呵呵,是的!同时它也是Function对象的一个实例;它也是我们要创建的对象myConstructor的构造函数。
下面我们就来:
2.创建对象的一个实例:
1 var myObject=new myConstructor();
这样我们就有了一个属性自己的new对象了。加油!
执行看一下结果,会发现不用调用函数了,原来只要创建了一个对象的实例就可以直接执行构造函数了!
现在的构造函数功能很简单,接下我们继续壮大该函数:
3.给对象添加不同等级的属性及方法
代码
1 function myConstructor(id){
2 //创建公有属性
3 this.id=id;
4 //创建公有方法
5 this.sayHello=function(){
6 alert("Hello World!");
7 };
8 //创建私有属性
9 var user="gp";
10 //创建私有方法
11 var sayName=function(){
12 alert(user);
13 }
14 }
15 var myObject1=new myConstructor("id1");
16 var myObject2=new myConstructor("id2");
17 //创建静态属性
18 myObject1.name="123";
19 //创建静态方法
20 myObject1.sayMy=function(){
21 alert("this is mine");
22 }
23
24
25 //查看myObject1的静态name属性
26 alert(myObject1.name);
27 //查看myObject1的静态sayMy方法
28 myObject1.sayMy();
29 //查看myObject1的公有id属性
30 alert(myObject1.id);
31 //查看myObject1的公有sayHello方法
32 myObject1.sayHello();
33
34
35 //查看myObject2的静态name属性
36 alert(myObject2.name); //提示未定义
37 //查看myObject2的静态sayMy方法
38 //myObject2.sayMy(); 提示myObject2.sayMy is not a function
39 //查看myObject2的公有id属性
40 alert(myObject2.id);
41 //查看myObject2的公有sayHello方法
42 myObject2.sayHello();
43
44 //通过实例查看构造函数的私有属性
45 alert(myObject1.user);//提示未定义
46
47 //通过实例查看构造函数的私有方法
48 //myObject2.sayName(); 提示myObject2.sayName is not a function
2 //创建公有属性
3 this.id=id;
4 //创建公有方法
5 this.sayHello=function(){
6 alert("Hello World!");
7 };
8 //创建私有属性
9 var user="gp";
10 //创建私有方法
11 var sayName=function(){
12 alert(user);
13 }
14 }
15 var myObject1=new myConstructor("id1");
16 var myObject2=new myConstructor("id2");
17 //创建静态属性
18 myObject1.name="123";
19 //创建静态方法
20 myObject1.sayMy=function(){
21 alert("this is mine");
22 }
23
24
25 //查看myObject1的静态name属性
26 alert(myObject1.name);
27 //查看myObject1的静态sayMy方法
28 myObject1.sayMy();
29 //查看myObject1的公有id属性
30 alert(myObject1.id);
31 //查看myObject1的公有sayHello方法
32 myObject1.sayHello();
33
34
35 //查看myObject2的静态name属性
36 alert(myObject2.name); //提示未定义
37 //查看myObject2的静态sayMy方法
38 //myObject2.sayMy(); 提示myObject2.sayMy is not a function
39 //查看myObject2的公有id属性
40 alert(myObject2.id);
41 //查看myObject2的公有sayHello方法
42 myObject2.sayHello();
43
44 //通过实例查看构造函数的私有属性
45 alert(myObject1.user);//提示未定义
46
47 //通过实例查看构造函数的私有方法
48 //myObject2.sayName(); 提示myObject2.sayName is not a function