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


Posted in Javascript onDecember 07, 2009

在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方式
Javascript 相关文章推荐
jquery 插件开发备注
Aug 27 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
js中array的sort()方法使用介绍
Feb 20 Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
Aug 18 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
bootstrap fileinput完整实例分享
Nov 08 Javascript
ES6新特性:使用export和import实现模块化详解
Jul 31 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
angular4中引入echarts的方法示例
Jan 29 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
javascript prototype原型操作笔记
Dec 07 #Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
Dec 07 #Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
Dec 07 #Javascript
js event事件的传递与冒泡处理
Dec 06 #Javascript
IE和firefox浏览器的event事件兼容性汇总
Dec 06 #Javascript
js 操作select相关方法函数
Dec 06 #Javascript
JavaScript 对象模型 执行模型
Dec 06 #Javascript
You might like
php输出xml格式字符串(用的这个)
2012/07/12 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
jQuery使用手册之一
2007/03/24 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
解析python实现Lasso回归
2019/09/11 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
连带责任保证书
2014/04/29 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
追悼词范文大全
2015/06/23 职场文书
教师节祝酒词
2015/08/11 职场文书
心得体会格式及范文
2016/01/25 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技