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

 更新时间:2016年08月24日 10:03:09   投稿:jingxian  
下面小编就为大家带来一篇归纳下js面向对象的几种常见写法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

//定义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面向对象的几种常见写法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Bootstrap基本样式学习笔记之按钮(4)

    Bootstrap基本样式学习笔记之按钮(4)

    篇文章主要介绍了Bootstrap学习笔记之按钮基本样式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 扫微信小程序码实现网站登陆实现解析

    扫微信小程序码实现网站登陆实现解析

    这篇文章主要介绍了扫微信小程序码实现网站登陆实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 测试你的JS的掌握程度的代码

    测试你的JS的掌握程度的代码

    先不讲文章的主题是什么,大家先来做做这些题目,看你能做对多少。这也是反映了你对JS基础知识的掌握程度!
    2009-12-12
  • jquery $(document).ready()和window.onload的区别浅析

    jquery $(document).ready()和window.onload的区别浅析

    这篇文章主要介绍了jquery $(document).ready()和 window.onload的区别浅析,本文总结了执行时间、编写个数不同、简化写法等不同的地方,需要的朋友可以参考下
    2015-02-02
  • javascript axios 实现进度监控的示例代码

    javascript axios 实现进度监控的示例代码

    在使用axios发送HTTP请求时,可以通过onUploadProgress和onDownloadProgress来监控上传和下载的进度,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • ajax接收后台数据在html页面显示

    ajax接收后台数据在html页面显示

    本篇文章主要介绍了ajax接收后台数据在html页面显示的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 基于cssSlidy.js插件实现响应式手机图片轮播效果

    基于cssSlidy.js插件实现响应式手机图片轮播效果

    cssSlidy是一款支持手机移动端的焦点图轮播插件,支持标题设置,滑动动画,间隔时间等。这篇文章主要基于cssSlidy.js插件实现响应式手机图片轮播效果,
    2016-08-08
  • JavaScript NodeTree导航栏(菜单项JSON类型/自制)

    JavaScript NodeTree导航栏(菜单项JSON类型/自制)

    利用闲暇时间自己做了个JavaScript NodeTree,网上有很多类似的效果,本例主要是练练手,巩固下知识,感兴趣的朋友可以了解下,或许对你学习NodeTree导航栏有所帮助,认为好的就分享喽
    2013-02-02
  • Three.js快速入门教程

    Three.js快速入门教程

    这篇文章主要为大家详细介绍了Three.js快速入门教程,帮助大家快速入门,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 常用的JavaScript模板引擎介绍

    常用的JavaScript模板引擎介绍

    这篇文章主要介绍了常用的JavaScript模板引擎介绍,本文介绍了8款常用JavaScript 模板引擎,着重讲解了artTemplate模板引擎,需要的朋友可以参考下
    2015-02-02

最新评论