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 相关文章推荐
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
jquery插件制作 手风琴Panel效果实现
Aug 17 Javascript
jquery实现标签上移、下移、置顶
Apr 26 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
Sep 28 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
Feb 03 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
JS如何生成随机验证码
Mar 02 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 Javascript
javascript实现电商放大镜效果
Nov 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php的字符串用法小结
2010/06/08 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
tornado+celery的简单使用详解
2019/12/21 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
群胜软件Java笔试题
2012/09/29 面试题
银行类自荐信
2014/02/04 职场文书
党组织公开承诺书
2014/03/29 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
学校隐患排查制度
2015/08/05 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书