归纳下js面向对象的几种常见写法总结


Posted in Javascript onAugust 24, 2016

//定义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();

需要注意的是this的指向问题

以上这篇归纳下js面向对象的几种常见写法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
JS小功能(button选择颜色)简单实例
Nov 29 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
iScroll.js 使用方法参考
May 16 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
js实现数组去重方法及效率?Ρ? target=
Feb 14 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
JS正则表达式验证中文字符
May 08 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 #Javascript
js友好的时间返回函数
Aug 24 #Javascript
JS转换HTML转义符的方法
Aug 24 #Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 #Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 #Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
You might like
php adodb介绍
2009/03/19 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
JS交换变量的方法
2015/01/21 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
详解VUE 数组更新
2017/12/16 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
python异常和文件处理机制详解
2016/07/19 Python
python 队列详解及实例代码
2016/10/18 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
网络技术支持面试题
2013/04/22 面试题
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
思想品德自我评价
2014/02/04 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
十月围城观后感
2015/06/08 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python