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下的keyCode键码值表
Apr 10 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
angularjs基础教程
Dec 25 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
vue中使用gojs/jointjs的示例代码
Aug 24 Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
JavaScript控制台的更多功能
Apr 28 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做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
php操作redis缓存方法分享
2015/06/03 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
Python实现简易端口扫描器代码实例
2017/03/15 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python序列化pickle模块使用详解
2020/03/05 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang