javaScript基础学习(8)(继承)

来源:互联网 发布:apache 64位安装版 编辑:程序博客网 时间:2024/06/05 07:44

javaScirpt和其他语言一样也可以实现继承。

组合继承1

//组合继承1<script>      var o1 = {a:'a',b:'b'};      var o2 = {score:{          math:100,          english:97      }};      //组合继承      for(var k in o1){          o2[k] = o1[k];      }  </script>

组合继承2

//组合继承2 <script>      var o1 = {a:'a',b:'b'};      var o2 = {score:{          math:100,          english:97      }};      //组合继承      o2.extend = function(obj){          for(var k in obj){              this[k] = obj[k];          }      }      o2.extend(o1);      o2.extend({          id:function(id){          },          tag:function(tag){          },          showErr:function(error){              throw new  Error(error);          }      });  </script>

原生继承

   <script>      // crate方法继承1       var o1 = {a:'a',b:'b'};       var o2 = Object.create(o1);       document.write(o2.a);       document.write("<br>");      //crate方法继承2 自定义       function create(ojb){           function F(){}           F.prototype = ojb;           return new F();       }       var o3 = create(o1);       document.write(o3.b);   </script>
<script>     //crate方法继承3      if(!Object.create) {          Object.create = function create(ojb) {              function F() {}              F.prototype = ojb;              return new F();          }      }      var o3 = Object.create(o1);  </script>

继承统一方法

 <script>      var create = function(obj){          if(Object.create){              return Object.create(obj);          }else{              function F() {}              F.prototype = ojb;              return new F();          }      }  </script>
0 0