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

JS 中面向对象的5种写法

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

Java代码 复制代码
  1. //第1种写法??? ??
  2. function Circle(r) {??? ??
  3. ??????this.r = r;??? ??
  4. }??? ??
  5. Circle.PI = 3.14159;??? ??
  6. Circle.prototype.area = function() {??? ??
  7. ??return Circle.PI * this.r * this.r;??? ??
  8. }??? ??
  9. ?? ??
  10. var c = new Circle(1.0);?????? ??
  11. alert(c.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());

?

Java代码 复制代码
  1. //第2种写法??? ??
  2. var Circle = function() {??? ??
  3. ??? var obj = new Object();??? ??
  4. ??? obj.PI = 3.14159;??? ??
  5. ?????? ??
  6. ??? obj.area = function( r ) {??? ??
  7. ???????return this.PI * r * r;??? ??
  8. ??? }??? ??
  9. ???return obj;??? ??
  10. }??? ??
  11. ?? ??
  12. var c = new Circle();??? ??
  13. alert( c.area( 1.0 ) );????
//第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 ) );

?

Java代码 复制代码
  1. //第3种写法??? ??
  2. var Circle = new Object();??? ??
  3. Circle.PI =