Javascript——ECMAScript、Microsoft、ESRI
2010-03-05 00:00:00 来源:WEB开发网ECMAScript中的任何function函数都可以看作是Function类的实例,比如对sayhi函数的定义,1和2的效果是一样的。
1 function sayhi(sName){ alert("Hello" + sName); }
2 var sayhi = new Function("sName","alert(\"Hello \" +sName ); ");
除了Function类,ECMAScript还提供了Object、String、Boolean、Number 、Array、Date、Math等类,我们还可以定义新的类或拓展已有的类。
ECMAScript定义类的主要方式是混合的构造函数/原型方式,用构造函数定义类的非函数属性,用原型方法定义类的函数属性(方法)。相对于单纯的构造函数或原型方式,它的好处是所以函数都只创建一次,而每个对象都具有自己的对象属性实例,比如:
function Car(sColor,iDoors)
{
this.color = sColor;
this.doors = iDoors;
}
Car.prototype.showColor = function(){ alert(this.color); }
在构造函数/原型方式上的进一步包装是动态原型方法,它更符合OO风格,定义如下:
function Car(sColor,iDoors)
{
this.color = sColor;
this.doors = iDoors;
if(typeof Car._initialized == "undefined")
{
Car.prototype.showColor = function(){ alert(this.color); }
}
Car._initialized = true;
}
ECMAScript中实现对自定义对象的继承,主要是通过对象冒充的方式,但这需要理解函数的工作方式和this关键字。其原理如下:构造函数使用this关键字给所有属性和方法赋值。因为构造函数只是一个函数,所以可以使ClassFather的构造函数成为ClassChild的方法,然后调用它。ClassChild就会接收到ClassFather的构造函数中定义的属性和方法。例如:
Tags:Javascript ECMAScript Microsoft
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接