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 清空file域示例(兼容个浏览器)
Oct 11 Javascript
jquery简单实现外部链接用新窗口打开的方法
May 30 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
JS实现队列与堆栈的方法
Apr 21 Javascript
创建一个类Person的简单实例
May 17 Javascript
轻松5句话解决JavaScript的作用域
Jul 15 Javascript
JS实现HTML标签转义及反转义
Apr 14 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
详解使用VueJS开发项目中的兼容问题
Aug 02 Javascript
Vue-axios-post数据后端接不到问题解决
Jan 09 Javascript
JavaScript对象字面量和构造函数原理与用法详解
Apr 18 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
Jun 01 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
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
Python中集合类型(set)学习小结
2015/01/28 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
后勤岗位职责
2013/11/26 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
大学生毕业求职信
2014/06/12 职场文书
微观世界观后感
2015/06/10 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
python 中的jieba分词库
2021/11/23 Python
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL