注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【转】悟透javascript 经典案例  

2011-09-07 00:32:25|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> javascript and chan </title>
  <script type="text/javascript">
  <!--
    /*
  * 基对象
  */
 var object ={
    isA : function(aType){
       var self = this;
       while(self)
    {
                  if(self == aType)
      {
         return true;
      }
      self = self.Type;
    };
       return false;
    } 
 };
   
    /*
  * 继承
  */
 function extend(aBaseClass,aClassDefine)
 {
         function class_()
   {
     this.Type = aBaseClass;
     for(var member in aClassDefine)
     {
       this[member] = aClassDefine[member];
     }
   };
     
   class_.prototype = aBaseClass;
      return new class_();
     };

     /*
   * 创建类
   */
     function New(aClass,aParams)
  {
   function new_()
   {
     this.Type = aClass;
     if(aClass.Create)
     {
        aClass.Create.apply(this,aParams);
     };
    
   }
   new_.prototype = aClass; 
   return new new_();  
   }

      /*
    * 人对象继承基对象
    */
   var Person = extend(object,{
         
         Create : function(name,age)
   {
     this.name = name;
     this.age = age;
   },

   SayHello : function()
   {
     alert("Hello,I'm "+this.name+","+this.age+"years old.");
   }

     });
      
    /*
     * 继承人对象
     */
  var Employee = extend(Person,{
      Create : function(name,age,salary)
      {
                 Person.Create.call(this,name,age);
     this.salary = salary;
   },

   ShowMeTheMoney:function()
   {
     alert(this.name+"$"+this.salary);
   }

  });

  var  BillGates = New(Person,["Bill Gates",53]);

  var  SteveJobs = New(Employee,["Steve Jobs",53,1234]);
       BillGates.SayHello();
    SteveJobs.SayHello();
    SteveJobs.ShowMeTheMoney();

        //根据BillGate的类型创建LittleBill
        var LittleBill = New(BillGates.Type, ["Little Bill", 6]); //根据BillGate的类型创建LittleBill 
      LittleBill.SayHello();
      alert(BillGates.isA(Person));   //true
   alert(BillGates.isA(Employee)); //false
   alert(SteveJobs.isA(Person));   //true
   alert(Person.isA(Employee));    //false
   alert(Employee.isA(Person));    //true


  -->
  </script>
 </head>
 <body>
 
 </body>
</html>

  评论这张
 
阅读(312)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018