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 相关文章推荐
Prototype使用指南之selector.js说明
Oct 26 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
js实现在字符串中提取数字
Nov 05 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
js+css实现导航效果实例
Feb 10 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
js实现3D照片墙效果
Oct 28 Javascript
vue 实现锚点功能操作
Aug 10 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+mysql写的简单留言本实例代码
2008/07/25 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
广州盈通面试题
2015/12/05 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
见习报告怎么写
2014/10/31 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS