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 相关文章推荐
Javascript里使用Dom操作Xml
Sep 20 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 Javascript
js控制href内容的连接内容的变化示例
Apr 30 Javascript
Linux下编译安装php libevent扩展实例
Feb 14 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
微信小程序中吸底按钮适配iPhone X方案
Nov 29 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
Aug 29 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python退火算法在高次方程的应用
2018/07/26 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
汽车维修求职信
2014/06/15 职场文书
高效课堂标语
2014/06/26 职场文书
刑事法律意见书
2015/06/04 职场文书
汽车车尾标语大全
2015/08/11 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python