WEB开发网
开发学院网页设计JavaScript Javascript——ECMAScript、Microsoft、ESRI 阅读

Javascript——ECMAScript、Microsoft、ESRI

 2010-03-05 00:00:00 来源:WEB开发网   
核心提示:ECMAScript中的任何function函数都可以看作是Function类的实例,比如对sayhi函数的定义,Javascript——ECMAScript、Microsoft、ESRI,1和2的效果是一样的,1 function sayhi(sName){ alert("Hello" + sNa

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的构造函数中定义的属性和方法。例如:

1 2 3  下一页

Tags:Javascript ECMAScript Microsoft

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接