js面向对象编程总结


Posted in Javascript onFebruary 16, 2017

//定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area()

1.工厂方式

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 ) );

2.比较正规的写法

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());

3.json写法

var Circle={
 "PI":3.14159,
 "area":function(r){
   return this.PI * r * r;
  }
};
alert( Circle.area(1.0) );

4.有点变化,但是实质和第一种一样

var Circle=function(r){
  this.r=r;
}
Circle.PI = 3.14159; 
Circle.prototype={
 area:function(){
  return this.r*this.r*Circle.PI;
 }
}
var obj=new Circle(1.0);
alert(obj.area())

Circle.PI = 3.14159; 能够放入属性中写成this.PI=3.14159;

常用为第一种和第三种

第三种写法的扩展小实例

var show={
  btn:$('.div1'),
  init:function(){
   var that=this;
   alert(this);
   this.btn.click(function(){
     that.change();
     alert(this);
    })
  },
  change:function(){
   this.btn.css({'background':'green'});
  }
 }
 show.init();

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript中几个重要的属性(this、constructor、prototype)介绍
May 19 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
Dec 26 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
js选项卡的实现方法
Feb 09 Javascript
深入分析Cookie的安全性问题
Mar 01 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
实例讲解JavaScript中的this指向错误解决方法
Jun 13 Javascript
jQuery时间日期三级联动(推荐)
Nov 27 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 Javascript
webpack vue项目开发环境局域网访问方法
Mar 20 Javascript
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 #Javascript
JS实现DIV高度自适应窗口示例
Feb 16 #Javascript
Js apply方法详解
Feb 16 #Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 #Javascript
js实现文字无缝向上滚动
Feb 16 #Javascript
node学习记录之搭建web服务器教程
Feb 16 #Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 #Javascript
You might like
destoon复制新模块的方法
2014/06/21 PHP
php实现登陆模块功能示例
2016/10/20 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php-msf源码详解
2017/12/25 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
Python字典操作简明总结
2015/04/13 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python 字符串常用方法汇总详解
2019/09/16 Python
python sorted函数的小练习及解答
2019/09/18 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
个人教师自我评价范文
2013/12/02 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2015年教研组工作总结
2015/05/04 职场文书
项目验收申请报告
2015/05/15 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
Nginx配置根据url参数重定向
2022/04/11 Servers