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 相关文章推荐
javascript代码加载优化方法
Jan 30 Javascript
js 函数调用模式小结
Dec 26 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
详解node中创建服务进程
May 09 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
JavaScript ES6中的简写语法总结与使用技巧
Dec 30 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
如何通过简单的代码描述Angular父组件、子组件传值
Apr 07 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
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
python购物车程序简单代码
2018/04/18 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
七一建党节慰问信
2015/02/14 职场文书
2015年医院工作总结范文
2015/04/09 职场文书