欢迎来到福编程网,本站提供各种互联网专业知识!

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

发布时间:2016-08-24 作者:投稿jingxian 来源:转载
下面小编就为大家带来一篇归纳下js面向对象的几种常见写法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

1.工厂方式

代码
  1. var Circle = function() {
  2. var obj = new Object();
  3. obj.PI = 3.14159;
  4. obj.area = function( r ) {
  5. return this.PI * r * r;
  6. }
  7. return obj;
  8. }
  9. var c = new Circle();
  10. alert( c.area( 1.0 ) );

2.比较正规的写法

代码
  1. function Circle(r) {
  2. this.r = r;
  3. }
  4. Circle.PI = 3.14159;
  5. Circle.prototype.area = function() {
  6. return Circle.PI * this.r * this.r;
  7. }
  8. var c = new Circle(1.0);
  9. alert(c.area());

3.json写法

代码
  1. var Circle={
  2. "PI":3.14159,
  3. "area":function(r){
  4. return this.PI * r * r;
  5. }
  6. };
  7. alert( Circle.area(1.0) );

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

代码
  1. var Circle=function(r){
  2. this.r=r;
  3. }
  4. Circle.PI = 3.14159;
  5. Circle.prototype={
  6. area:function(){
  7. return this.r*this.r*Circle.PI;
  8. }
  9. }
  10. var obj=new Circle(1.0);
  11. alert(obj.area())

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

常用为第一种和第三种

第三种写法的扩展小实例

代码
  1. var show={
  2. btn:$('.div1'),
  3. init:function(){
  4. var that=this;
  5. alert(this);
  6. this.btn.click(function(){
  7. that.change();
  8. alert(this);
  9. })
  10. },
  11. change:function(){
  12. this.btn.css({'background':'green'});
  13. }
  14. }
  15. show.init();

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

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

相关推荐

返回顶部