javascript 类定义的4种方法


Posted in Javascript onSeptember 12, 2009
/* 
工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function ) 
*/ 
function createCar(color,doors,mpg){ 
var tempCar = new Object; 
tempCar.color = color; 
tempCar.doors = doors; 
tempCar.mpg = mpg; 
tempCar.showCar = function(){ 
alert(this.color + " " + this.doors); 
} 
return tempCar; 
} /* 
构造函数方式--- 构造函数看起来很像工厂函数 
*/ 
function Car(color,doors,mpg){ 
this.color = color; 
this.doors = doors; 
this.mpg = mpg; 
this.showCar = function(){ 
alert(this.color); 
}; 
} 
/* 
原型方式--- 利用了对象的 prototype 属性,可把它看成创建新对象所依赖的原型 
*/ 
function Car(color,doors,mpg){ 
this.color = color; 
this.doors = doors; 
this.mpg = mpg; 
this.drivers = new Array("nomad","angel"); 
} 
Car.prototype.showCar3 = function(){ 
alert(this.color); 
}; 
/* 
混合的构造函数 /原型方式--- 用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法) 
*/ 
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); 
}; 
/* 
动态原型方法--- 在构造函数内定义非函数属性,而函数属性则利用原型属性定义。唯一的区别是赋予对象方法的位置。 
*/ 
function Car(sColor, iDoors, iMpg) { 
this.color = sColor; 
this.doors = iDoors; 
this.mpg = iMpg; 
this.drivers = new Array("Mike", "Sue"); 
if (typeof Car._initialized == "undefined") { 
Car.prototype.showColor = function () { 
alert(this.color); 
}; 
Car._initialized = true; 
} 
} //该方法使用标志( _initialized )来判断是否已给原型赋予了任何方法。
Javascript 相关文章推荐
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
Dec 03 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
jQuery操作json常用方法示例
Jan 04 Javascript
vue加载自定义的js文件方法
Mar 13 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
微信小程序日历插件代码实例
Dec 04 Javascript
详解Vue数据驱动原理
Nov 17 Javascript
一个简单的javascript类定义例子
Sep 12 #Javascript
一个简单的JavaScript 日期计算算法
Sep 11 #Javascript
关于javascript 回调函数中变量作用域的讨论
Sep 11 #Javascript
javascript 一些用法小结
Sep 11 #Javascript
JS 日期验证正则附asp日期格式化函数
Sep 11 #Javascript
jquery 简单导航实现代码
Sep 11 #Javascript
禁止JQuery中的load方法装载IE缓存中文件的方法
Sep 11 #Javascript
You might like
php 结果集的分页实现代码
2009/03/10 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php cookie 详解使用实例
2016/11/03 PHP
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
node+multer实现图片上传的示例代码
2020/02/18 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python subprocess模块详细解读
2018/01/29 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
python温度转换华氏温度实现代码
2020/12/06 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
Linux常见面试题
2013/03/18 面试题
Ruby如何定义一个类
2012/10/08 面试题
适用于所有创业者的创业计划书
2014/02/05 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
初中家长意见
2015/06/03 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis