Javascript学习__对象(一)Array数组对象
一:面向对象
ECMAScript把对象定义为"属性的无序集合",每个属性存放一个原始值、对象或者函数,这么来说对象是无特定顺序的值得数组.
每个对象都由类定义,可以把类看做对象的配方,类不仅要定义对象的接口,还要定义对象的内部工作,编辑器和解释程序都根据类的说明创建对象。
程序使用类创建对象时,生成的对象叫做类的实例,对类生成的对象的个数的唯一限制来自于运行代码的机器的物理内存。每个实例的行为相同,但实例处理一 组独立的数据。由类创建实例的过程叫做实例化(instantiation).
1):面向对象语言的要求
1):封装--把相关的信息存储在对象中的能力。
2):聚集--把一个对象存储在另一个对象内的能力。
3):继承--由一个类(或多个类)得来类的属性和方法的能力
4):多态--编写能以多种运行的函数或方法的能力。
2:对象的构成
对象由特性(attribute)构成,特性可以是原始值,也可以是引用值,如果特性存放的是函数,它将被看做对象的方法(Method),否则该特性被看做属性
3:对象的应用
声明:var o = new Object(); 声明一个Object的实例对象。存储在o中
引用:ECMAScript中,不能访问对象的物理表示,只能访问对象的引用,每次创建对象,存储在变量中的都是该对象的引用,而不是对象本身。
对象废除:ECMAScript有无用存储单元收集程序,意味着不必专门销毁对象来释放内存,当在没有对象引用时,称该对象被废除了。每当对象执行完它的代码,无用存储单元收集程序都会运 行,释放所有的局部变量,还有在一些其他不可预知的情况下,无用存储单元收集程序也会运行。
绑定:把对象的接口与对象实例结合在一起的方法。
早绑定:是指在实例化对象之前定义它的特性和方法,这样编译器或者解释程序就能提前转换机器代码,ECMAScript不是强类型语言,所以不支持早绑定。
晚绑定:是指编辑器或解释程序在运行前,不知道对象的类型,使用晚绑定,无需检查对象的类型,只需要检查对象是否支持特性和方法即可,在ECMAScript中所有变量都采用晚绑定的方法。这样就允许执行大量的对象操作。
4:对象类型
Array类:
var aValues = new Array();
如果预先知道数组中项的个数可以:var aValues = new
Array(20);
var aColor = new Array();
aColor[0] = "red";
aColor[1] = "bule";
可以通过aColor[1]来得到数组中的值.可用属性length来得到数组的大小,如果想给数组加一项只需要把存放的值放入下一个未使用的位置即可.
也可以直接使用字面量来直接声明数组,例如:var aArray = ["red","blue"];Array对象覆盖了toString()方法和valueOf()方法,返回特殊的字符串.该字符串对每项调用toString()方法,然后用逗号把它们连接起来,得到结果为"red,",ECMAScript还提供了一个Join()方法,用于连接字符串值,Join()方法只有一个参数,即数组项间使用的字符串等价于toString()和valueOf()
例如:
var aColor = ["red","blue"];
alert("aColor.Join("[]")");outputs red[]blue[].
上面提高数组Array对象可以通过toString()方法转换为字符串的那么显而得知字符串也可以转化为数组对象,String类可以通过split()方法转换,split只有一个参数通过,号将字符串转化为Array数组对象.
Array对象具有两个String类具有的方法,即concat()和slice()方法.concat()方法处理数组的方式几乎与它处理字符串的方式完全一样,参数将被附加在数组的末尾,返回的函数值是新的Array对象.例如:
var aColors = ["red","green"];
var sColors = aColors.concat("blue");//返回的是red,green,blue将blue添加到aColors数组的末尾.
slice()方法也与String类中的slice()方法非常相似,返回的是具有特定项的新数组,类似于String类的方法.Array类的Slice()方法也接受一个或两个参数,即要提取项的起始位置和结束位置.如果只有一个参数,将返回该参数从该位置到结尾处,如果有两个参数则返回从第一个参数起始到第二个参数结尾的项(不包含第二个位置).
Array对象的动作就像一个栈,所谓栈,是一种限制了插入和删除数据项操作的数据结构.栈又叫做后进先出,意思是最近添加的项是最先删除的项.栈中的插入和删除操作都只在一个位置,即栈顶部.为了更方便的使用该功能,Array对象提供了两个方法,push()和pop(),push()方法用于在Array结尾添加一个或多项,pop()方法用于删除最后一个数组项(length-1),返回它作为函数值.
var stack = new Array();
stack.push("red");
stack.push("green");
alert(stack.toString());//red,green
var item = stack.pop();
alert(item);//outputs green,删除的是最后一项green
alert(stack.toString());//red;
Array还提供了操作第一项的方法,shift()将删除数组中的第一项,将其作为函数值返回,另一个方法是unshift()方法,它把一个项放在数组中的第一个位置.然后把余下的项向下移动一个位置.
通过调用shift()和push()方法,可以是Array对象具有队列一样的行为,所谓队列就是后进后出,是对元素的插入和删除具有限制的数据结构的一员,
如果想要颠倒数组的顺序可以使用,reverse()来颠倒数组中数据的顺序,另外Sort()方法将根据数组项的值按照升序为它们排序,要进行这种排序首先要调用toString()方法,将所有值转化为字符串,然后根据字符串代码比较数组项
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。