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打印纸函数代码(递归)
Jun 18 Javascript
javascript处理table表格的代码
Dec 06 Javascript
jqTransform form表单美化插件使用方法
Jul 05 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
JavaScript面对国际化编程时的一些建议
Jun 24 Javascript
AngularJS ng-bind 指令简单实现
Jul 30 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
一分钟学会JavaScript中的try-catch
Dec 14 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+mysql写的留言本
2006/10/09 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
php依赖注入知识点详解
2019/09/23 PHP
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
python通过链接抓取网站详解
2019/11/20 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
建党伟业电影观后感
2015/06/01 职场文书
干部考核工作总结
2015/08/12 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸