JS 面向对象的5钟写法


Posted in Javascript onJuly 31, 2009

Java代码

//第1种写法 
function Circle(r) { 
this.r = r; 
} 
Circle.PI = 3.14159; 
Circle.prototype.area = function() { 
return Circle.PI * this.r * this.r; 
} 
var c = new Circle(1.0); 
alert(c.area());

Java代码
//第2种写法 
var Circle = function() { 
var obj = new Object(); 
obj.PI = 3.14159; 
obj.area = function( r ) { 
return this.PI * r * r; 
} 
return obj; 
} 
var c = new Circle(); 
alert( c.area( 1.0 ) );

Java代码
//第3种写法 
var Circle = new Object(); 
Circle.PI = 3.14159; 
Circle.Area = function( r ) { 
return this.PI * r * r; 
} 
alert( Circle.Area( 1.0 ) );

Java代码
//第4种写法 
var Circle={ 
"PI":3.14159, 
"area":function(r){ 
return this.PI * r * r; 
} 
}; 
alert( Circle.area(1.0) );

Java代码
//第5种写法 
var Circle = new Function("this.PI = 3.14159;this.area = function( r ) {return r*r*this.PI;}"); 
alert( (new Circle()).area(1.0) );

大家来讨论一下这五种写法,它们的优缺点,哪个比较规范,特别是最后两种,经常见到。
Javascript 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
Javascript 两个窗体之间传值实现代码
Sep 25 Javascript
jquery 最简单易用的表单验证插件
Feb 27 Javascript
动态创建样式表在各浏览器中的差异测试代码
Sep 13 Javascript
javascript面向对象程序设计(一)
Jan 29 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
Sep 18 Javascript
jQuery zTree树插件简单使用教程
Jan 10 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
浅析Vue 生命周期
Jun 21 Javascript
vue+element实现表格新增、编辑、删除功能
May 28 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
Document 对象的常用方法
Jul 31 #Javascript
javascript getElementsByName()的用法说明
Jul 31 #Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
Jul 31 #Javascript
JavaScript 学习小结(适合新手参考)
Jul 30 #Javascript
JavaScript 创建对象和构造类实现代码
Jul 30 #Javascript
Javascript 学习笔记 错误处理
Jul 30 #Javascript
JS 学习笔记 防止发生命名冲突
Jul 30 #Javascript
You might like
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php抽象类用法实例分析
2015/07/07 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
Python中list初始化方法示例
2016/09/18 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
会计毕业生自荐信
2013/11/21 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
个人担保书范文
2014/05/20 职场文书
2016春节家属慰问信
2015/03/25 职场文书
科技馆观后感
2015/06/08 职场文书
酒店宣传语大全
2015/07/13 职场文书
提档介绍信范文
2015/10/22 职场文书
新学期开学寄语2016
2015/12/04 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android