1.对象和数组
总述
对象和数组是JS里两种重要的数据类型,它们与普通的如字符串和数字等基本数据类型不同的是:它们不是表示单个值,而是表示值的集合。
对象是一组已命名的值的集合,而数组是一种特殊的对象,是一组数值的有序集合。
1.1创建对象
对象把多个数据值集合在一个单元中,并且允许用名字来存放和获取这些值。
对象定义一般如下:
Js代码
var empty = {}
var point = {x:0,y:0}
var home = {
“name”:”liugx”,
“age”:29,
“married”:false
“email”:”liugx@sina.com”
}
以上写法我们在程序里常常用到,比如把函数的参数作为一个obj来传递;比如定义一个obj,赋上属性后,做为一个集合来使用;比如在客户端js里new一个img的ojb,赋值给它属性,如left,top,等,再appendchild到document中来显示;如常常在服务端封装成一个json,再在前台里把返回的字符串eval成obj,再通过属性来得到具体的值。。。。
在程序里,我们也常常用var o = new Object()来定义一个对象,再给这个o赋上相应的属性。这里的Object()是一个构造函数,就像我们常常在js里做如下定义:
Js代码
function TrackRecordMgr(){}
TrackRecordMgr.prototype={
doFun1:function(){
},
doFun2:function(){
}
}
上面的TrackRecordMgr()就是我们自定义的构造函数,只是在写js时,我们常常忘记了面象对象的思想了。在js里内建的构造函数常用的还有:
Js代码
var a = new Array();
var d = new Date();
var r = new RegExp();
1.2对象属性
对象属性主要掌握以下几个:
1、对象的属性可以通过给它赋值的方法来创建。这点我们在程序里常常用到。创建了属性后就可以任意时刻改变属性的值。
2、对象属性分为标识符与字符串两种写法的区别,理解这两种各用在哪些方面,特别是字符串数组的写法。
用数组表示法来访问对象的属性是很灵活的,为什么这么说呢?看下面的代码:
Js代码
for(var i=0;i<5;i++){
addresses = o[“addIndex”+i]+”,”
}
同时,我们在代码里常常把一个对象做为参数传递给另一个对象,另一个对象在需要遍历第一个对象的属性,把它加到自己身上。遍历的时候因为并无法知道第一个对象的所有属性名,所以只能通过数组写法来赋值:
Js代码
for(var name in obj1){
if(obj1.name){
ojb2[name] = obj1[name];
}
}