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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
使用jQuery避免鼠标双击的解决方案
Aug 21 Javascript
jquery中获取id值方法小结
Sep 22 Javascript
JS创建类和对象的两种不同方式
Aug 08 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
js格式化时间的简单实例
Nov 27 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
Javascript Worker子线程代码实例
Feb 20 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
BBS(php & mysql)完整版(一)
2006/10/09 PHP
ajax php 实现写入数据库
2009/09/02 PHP
php session_decode函数用法讲解
2019/05/26 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
在vue-cli中组件通信的方法
2017/12/16 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Django接收自定义http header过程详解
2019/08/23 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
环保建议书300字
2014/05/14 职场文书
服务口号大全
2014/06/11 职场文书
颐和园的导游词
2015/01/30 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
机器人瓦力观后感
2015/06/12 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
python正则表达式re.search()的基本使用教程
2021/05/21 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS