位置:海鸟网 > IT > JavaScript >

一起学习javascript(七):了解 javascript对象

我们这里只是简单的了解一下javascript的对象,更深入的学习可以搜索建站学关于该方面的文章!
1、中的内置对象
javascript中除了本身的内置对象,如以下我们所熟悉的对象:
•Array
•Date
•Math
•String
•RegExp
•……
各个对象都有自己的属性及方法,比如我们经常使用属性及方法
属性:stringObject.length; arrayObject.length;……
方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr(); arrayObject.concat(); arrayObject.push(); arrayObject.join();……
2、如何自定义对象,及添加属性和方法
a. 通过关键字new创建

1 var newObject = new Object();    //创建一个新类 

2 newObject.name = "new object"; //添加一个name的属性 

3 newObject.say = function() {    //添加say()方法 

4     alert(this.name);   //output new object 

5 }
对于以上的创建方法,我们可以利用ON(JavaScript Object Notation)的方法简写为如下代码:

1 var newObject = { 

2     name: "new object"; 

3     say: function () { 

4         alert(this.name); 

5     } 

6 };
我们利用JSON的数据格式创建一个更为复杂的对象

01 var company = { 

02     name: "tuanzz", 

03     product: "groupon", 

04     address: {province: "Hubei", city: "wuhan"}, 

05     person:[ 

06         {name: "zhangchen",age: "23"}, 

07         {name: "luomi", age: "23"}, 

08     ], 

09     readme: function() { 

10         alert("My name is "+this.person[0].name+" and "+this.person[0].age+" years old"); 

11     } 

12 }; 

13 company.readme(); //output My name is zhangchen and 23 years old;
我们可以看到,用JSON的数据格式创建的对象,代码不仅看起来十分优雅。
JSON的形式就是用大括“{}”号包括起来的项目列表,每一个项目间并用逗号“,”分隔,而项目就是用冒号“:”分隔的属性名和属性值。这是典型的字典表示形式,也再次表明了 JavaScript里的对象就是字典结构。不管多么复杂的对象,都可以被一句JSON代码来创建并赋值。
b、通过构造函数来创建对象

1 function objectFun(name) { 

2     this.name = name; 

3     this.say = function() { 

4         alert(this.name); 

5     } 

6 } 

7 var newObject = new objectFun("zhangchen"); 

8 newObject.say(); //output zhangchen
首先新建一个objectFun()函数,其中定义了属性和方法,这里我们可以把objectFun看作一个类(在javascript中函数就是对象),然后通过new实例化出一个对象,newObject对象中同样也有了父类中属性和方法。
我们可以用以下代码来检测函数确实是对象:

1 //普通函数 

2 function say(s) { 

3     alert(s); 

4 } 

5 say("hi"); 

6 //给函数对象赋属性,函数就是对象 

7 say.test = "it can work?"; 

8 alert(say.test); //output it can work?
如何理解以上创建对象的方法?我们看下面的代码:

1 function objectFun(name) { 

2     this.name = name; 

3     this.say = function() { 

4         alert(this.name); 

5     } 

6 } 

7 var newObject = new Object(); //创建一个空对象 

8 objectFun.call(newObject, "zhangchen"); //将newObject作为this参数调用objectFun函数 

9 newObject.say("zhangchen");//output zhangchen
首先创建一个newObject对象,newObject作为this参数调用objectFun函数。讲了这么多,我们完全可以把objectFun作为构造函数来使用。