| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> Web开发 >> JavaScript >> JavaScript技术资料 >> 正文
  ►  ECMAScript引用类型应用
ECMAScript引用类型应用
作者:佚名    阅读人次:……    文章来源:互联网    发布时间:2008-7-30    网友评论()条
 

  ECMAScript除了原始类型,还有引用类型。引用类型也通常叫做类。但ECMAScript实际上是没有类这个概念的。它仅仅只能称作对象。类的实例化用new关键字来创建。例如var o = new Object();ECMAScript中的类分别有:

  Object类是其他所有类的基类,Object类中的所有属性和方法都会出现在其他类中。

  Boolean类,Number类,String类,RegExp类,Date类,Array类,Function类

  在使用这些类的时候必须特别小心,因为,用new关键字创建的,都属于对象类型。在“转换”一节提到过,任何引用类型,转换成Boolean型都将是true。所以,应该尽量避免使用Boolean,Number,String类,而直接使用他们的原始值。

  转换引用类型的误区:

 

以下是引用片段:
 var oBoolean=new Boolean(false);
  var oNumber=new Number(0);
  alert(Boolean(oBoolean));
  alert(Boolean(oNumber));
  在不推荐使用上述三个引用类型时,有人会怀疑,这样岂不是不能使用类提供的丰富的方法。但其实,除了null和undefined,其他三种原始类型其实都是伪对象。也就是说,一个存储原始值的变量,同样可以使用对应的类的方法,甚至,即使是字面量也可以直接使用这些方法,但它本身依旧是原始类型。

  伪对象的方法:

  

以下是引用片段:
var int=4;
  var str=‘abcd’;
  alert(int.toString(8)+‘ ’+(4).toString(16));
  alert(typeof int);
  alert(str.toUpperCase()+ ‘ ’+ ‘EFGH’.toLowerCase());
  alert(typeof str);
  另外,对于Object类、RegExp类、Array类,Function类,也是可以通过字面量来直接定义的,而不需要使用new关键字来创建,但是,它们依旧是引用类型。为了提高效率,建议尽量用字面量来直接定义类。

  

以下是引用片段:
var oObject={};
  var oRegExp=/\d/ig;
  var oArray=[];
  var oFunction=function() {}
  javascript中的对象全是引用类型
  var o= new Object()
  o是一个引用,也是一个对象

  javascript中的函数对象也全是引用类型

  javascript的对象模型用得最广的是混合的构造函数/原型方法,例:

  

以下是引用片段:
function Car(sColor, iDoors, iMpg) ...{
   this.color = sColor;
   this.doors = iDoors;
   this.mpg = iMpg;
   this.drivers = new Array("Mike", "Sue");
  }
  
  Car.prototype.showColor = function () ...{
  alert(this.color);
  };
  
  var oCar1 = new Car("red", 4, 23);
  var oCar2 = new Car("blue", 3, 25);
  
  oCar1.drivers.push("Matt");
  
  alert(oCar1.drivers); //outputs "Mike,Sue,Matt"
  alert(oCar2.drivers); //outputs "Mike,Sue"
  

  上例就是一个混合的构造函数/原型方式,每个new出来的对象都拥有自己的属性,但每个对象都指向相同的函数 showColor,showColor被每个对象共享(它使用了原型,而属性没使用原型,如果属性也使用原型,它们也将被所有对象共享,修改任何一个对象的属性都将影响到其它对象的属性被修改).

  创建javascript对象有好几种方法,但这种方法是最优的,强烈建议使用这种方法。

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子