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 nth-child()选择器的简单应用
Jul 10 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
用jquery实现输入框获取焦点消失文字
Apr 27 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
使用js正则控制input标签只允许输入的值
Jul 29 Javascript
JavaScript  event对象整理及详细介绍
Oct 10 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
Angular ng-animate和ng-cookies用法详解
Apr 18 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 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
解析htaccess伪静态的规则
2013/06/18 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
php经典算法集锦
2015/11/14 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python 实现向word(docx)中输出
2020/02/13 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
HTML5标签大全
2016/11/23 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
仓库理货员岗位职责
2013/12/18 职场文书
护校行动方案
2014/05/31 职场文书
毕业生求职信
2014/06/10 职场文书
毕业大学生自荐信
2014/06/17 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
行政主管岗位职责
2015/02/03 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server