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

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

1.工厂方式

varCircle =function() {varobj =newObject();

obj.PI= 3.14159;

obj.area=function( r ) {returnthis.PI * r *r;

}returnobj;

}varc =newCircle();

alert( c.area(1.0 ) );

2.比较正规的写法

functionCircle(r) {this.r =r;

}

Circle.PI= 3.14159;

Circle.prototype.area=function() {returnCircle.PI *this.r *this.r;

}varc =newCircle(1.0);

alert(c.area());

3.json写法

varCircle={

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

       }

  }varobj=newCircle(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的指向问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,544评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,402评论 2 17
  • 一、JavaScript基础知识回顾 1.1 JavaScript 1.1.1 javascript是什么? Ja...
    福尔摩鸡阅读 5,333评论 0 7
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 6,046评论 0 2
  • 一阵微风轻轻的飘过,夹杂着春天的气息。樱花树下的两个孩子正凑到一起在说些什么。 “玉儿,给你。”那个男孩说着伸出...
    鸢蝶阅读 2,732评论 0 0

友情链接更多精彩内容