乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JS類的繼承之Call方法

       向著太陽生 2014-07-16
      Person.call(this,參數1,參數2,...);這種繼承方法只能繼承屬性及以屬性的形式添加的方法

      比如
          function Person(name,sex){
                  this.name = name;
                  this.sex =sex;
                  this.test=function(){
                      alert(this.sex);
                  }
              }

          function Worker(name,sex,job){
                  Person.call(this,name,sex);
                  this.job = job;
              }
      var obj1 = new Worker('姓名','男’,'工程師');
      obj1.test();//可以訪問test方法,其實是訪問test屬性,只是test屬性的值是個函數而已。

      如果是以原型prototype給Person類添加的方法,則子類的對象obj1無法訪問父類的方法
      比如
      Person.prototype.showName=function(){
                  alert(this.name);
              }
      var obj2 = new Worker('姓名','男’,'工程師');
      obj2.showName();//會報錯,訪問不到showName方法

      解決方案是把父類的原型賦值給子類的原型
      Worker.prototype = Person.prototype//此語句有引用賦值的BUG,導致當子類改變時父類也會跟著改變,解決方案
      for(var i in Person.prototype){
          Worker.prototype[i] = Person.prototype[i]
      }

       
       

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多