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 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
封装的原生javascript弹出层代码
Sep 24 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
Sep 06 Javascript
jquery常用的12个小功能
Jul 22 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
sea.js常用的api简易文档
Nov 15 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
Jun 26 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 Javascript
vue resource post请求时遇到的坑
Oct 19 Javascript
layui树形菜单动态遍历的例子
Sep 23 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
PHP下对数组进行排序的函数
2010/08/08 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
PHP 透明水印生成代码
2012/08/27 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
JS实现放烟花效果
2020/03/10 Javascript
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python使用super()出现错误解决办法
2017/08/14 Python
python numpy格式化打印的实例
2018/05/14 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
装修活动策划方案
2014/08/27 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
早安问候语大全
2015/11/10 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
mysql函数全面总结
2021/11/11 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS