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的实现原理的模拟代码 -2 数据部分
Aug 01 Javascript
jQuery $.get 的妙用 访问本地文本文件
Jul 12 Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
动手写一个angular版本的Message组件的方法
Dec 16 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
JS中数据结构之栈
Jan 01 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
Mar 02 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中的unset究竟会不会释放内存
2013/07/18 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
使用Python构建Hopfield网络的教程
2015/04/14 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
详解python中的装饰器
2018/07/10 Python
详解Django中间件执行顺序
2018/07/16 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
技术经理的自我评价范文
2013/12/03 职场文书
英语商务邀请函范文
2014/01/16 职场文书
竞聘上岗演讲
2014/05/19 职场文书
企业员工集体活动方案
2014/08/17 职场文书
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers