当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript 常见对象类创建代码与优缺点分析

Javascript
玩透弹出窗口
几个常用的日期函数
简单的脚本帮你编排JScript程序中的缩进
得到 words.js?hello,world! 参数的处理方法
如何在javascript中传值
可输入的select
IE支持的HTML元素的DISABLE属性在NETSCAPE4.76中的实现
利用xml数据岛实现多级关联下拉选择框的做法
利用Wipe等ActiveX技术,实现n(n>>2)幅图片轮换擦洗显示
Javascript技术实现真正的网上试听
JavaScript实现在线编辑表格
根据客户端的分辨率不同而重定向到不同网页的脚本
几种不刷新页面取数据的方法
web进度条
随手写的一个动态添加删除行的HTC行为组件
农历与阳历的对照
关于在页面中解决打印的几个问题
"打开,另存为,属性,打印"等14个JS代码
无提示框关闭IE窗口
实现上传(增删)多个文件的客户端写法。

Javascript 中的 JavaScript 常见对象类创建代码与优缺点分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 84 ::
收藏到网摘: n/a

这几种javascript类定义方式中,最常用的是杂合prototype/constructor 和 动态prototype方式。 在Javascript中构建一个类有好几种方法:
1.Factory 方式
复制代码 代码如下:

function createCar(){
var car = new Object();
car.color=”b”;
car.length=1;
car.run=function(){alert(”run”);}
return car;
}

定义这么一个函数之后,就可以用:
var car1 = createCar();
var car2 = createCar();
来创建新的对象,这种方式的问题是每一次创建一个car对象,run Function也都必须重新创建一次.浪费内存
2.Constructor方式
复制代码 代码如下:

function Car(){
this.color=”b”;
this.length=1;
this.run=function(){alert(”run”);}
}
var car1=new Car();
var car2=new Car();

这是最基本的方式,但是也存在和factory方式一样的毛病
3.prototype方式
复制代码 代码如下:

function Car(){
}
Car.prototype.color=”b”;
Car.prototype.length=1;
Car.prototype.run=function(){alert(”run”);
}

这个方式的缺点是,当这个类有一个引用属性时,改变一个对象的这个属性也会改变其他对象得属性
比如:
复制代码 代码如下:

Car.prototype.data1=new Array();
var car1=new Car();
var car2=new Car();
car1.data1.push(”a”);

此时,car2.data也就包含了”a”元素
4.Prototype/Constructor杂合方式 [常用]
复制代码 代码如下:

function Car(){
this.color=”b”;
this.length=1;
this.data1=new Array();
}
Car.prototype.run=function(){
alert(”dddd”);
}

这种方式去除了那些缺点.是目前比较大范围使用的方式
5.动态prototype方式 [常用]
复制代码 代码如下:

function Car(){
this.color=”b”;
this.length=1;
this.data1=new Array();
if(typeof Car.initilize==”undefined”){
Car.prototype.run=function(){alert(”a”);}
}
Car.initilize=true;
}

这几种方式中,最常用的是杂合prototype/constructor 和 动态prototype方式