《JS高级程序设计》PART3.对象基础

3.2对象应用

· 对象废除:如果一个对象有2个及以上引用,则要正确的废除该对象,必须将其所有引用都设置为null。

js和java一样,有垃圾回收机制,会自动收回已无引用指向的对象。

· 早绑定和晚绑定

绑定:把对象的接口和实例结合在一起的方法。

早绑定:指在实例化对象之前定义他的特性和方法;

玩绑定:指在编译器或解释程序在运行前,不知道对象的类型。ECMASCript采用的是晚绑定。

3.3对象类型

1.本地对象

· Array类

以下用示例来说明其用法:

var arry = new Array(10); //不知大小时,可以省略,在后面的代码中可以任意增加

var arry = new Array("red","green","blue");

alert(arry[1]);//"green"

var sCor = "red,green,blue";

var arry = sCor.split(",");//转化为Array对象

var sCor = "green";

var arry = sCor.split("");//使用空串分割,则会分成各个字符:"g,r,e,e,n"

Array有2个String具有的方法:concat():连接 /slice():截取部分内容

Array提供了栈的功能:

var stack = new Array;

stack.push("red");

stack.push("green");

alert(stack.toString());//"red,green"

var aa = stack.pop();//"green"

shift():将删除数组第一项,并作为函数值返回。/Unshift反之。

通过shift和push(),可完成队列的功能。

· Date类

var d = new Date(Date.parse("6/1/2011"));//如果传递的字符串无法转为日期,将为NaN

var d = new Date(Date.UTC(2011,0,6));//设置月份特别注意,因为其月的设置从0开始 (2011-1-6)

2.内置对象

ECMASCript中提供了2个内置对象:Global和Math;

Global的eval()方法:该方法就像整个ECMASCript解释程序,接受一个参数,将其解释为真正的ECMASCript语句,然后把它插入到该函数所在的位置。

3.宿主对象

所有非本地对象都是宿主对象,即由ECMASCript实现宿主环境的对象。所有的BOM和DOM对象都是宿主对象。

3.5定义类或对象

使用构造函数形式:

function Car (sColor,iDoor){

this.color = sColor;

this.doors = iDoor;

this.showColor = function(){

alert(this.color)

};

}

var oCar = new Car ('red',4);

var oCar2 = new Car("green",3);

注:对象的结构不用实现定义,直接在构造函数中按需取用。

以上创建对象中所拥有的函数为2份,出现内存浪费。(c++java中所有对象的函数共用一份)

改进:将函数提出来,在构造函数之后,用prototype添加.(prototype属性可用来定义方法)

Car.prototype.showColor = function(){ alert(this.color};

3.6修改对象

创建新方法:Number.prototype.toHexString = function(){return this.toString(16)};

重定义已有的方法:再定义一遍,就会覆盖,因为ECMASCript没有重载。

 

More:http://blog.donews.com/me1105/archive/2011/02/10/118.aspx

原文地址:https://www.cnblogs.com/me115/p/1950945.html