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 相关文章推荐
js类中获取外部函数名的方法
Aug 19 Javascript
ie和firefox不兼容的解决方法集合
Apr 28 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
JavaScript window.location对象
Nov 14 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
JS回调函数简单用法示例
Feb 09 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
JavaScript条件判断_动力节点Java学院整理
Jun 26 Javascript
javascript实现获取中文汉字拼音首字母
May 19 Javascript
Vue使用轮询定时发送请求代码
Aug 10 Javascript
详解如何在Canvas中添加事件的方法
Apr 17 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中extract()函数的妙用分析
2012/07/11 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
PHP设置进度条的方法
2015/07/08 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
Python实现的归并排序算法示例
2017/11/21 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
python中几种自动微分库解析
2019/08/29 Python
python实现批量修改文件名
2020/03/23 Python
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
英文版销售经理个人求职信
2013/11/20 职场文书
主题酒店策划书
2014/01/28 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
安全生产月演讲稿
2014/05/09 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
志愿服务心得体会
2016/01/15 职场文书