日期:2014-05-16  浏览次数:20282 次

js 面向对象的5种写法
定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area()
/第1种写法  
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());  


   
//第2种写法  
    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 ) );  


  
 //第3种写法  
    var Circle = new Object();  
    Circle.PI = 3.14159;  
    Circle.Area = function( r ) {  
           return this.PI * r * r;  
    }  
      
    alert( Circle.Area( 1.0 ) );  



//第4种写法  
var Circle={  
   "PI":3.14159,  
 "area":function(r){  
          return this.PI * r * r;  
        }  
};  
alert( Circle.area(1.0) ); 


/第5种写法  
var Circle = new Function("this.PI = 3.14159;this.area = function( r ) {return r*r*this.PI;}");  
  
alert( (new Circle()).area(1.0) );