【JavaScript】 使用extend繼承對象的prototype方法


  之前有學習過通過prototype模式來構造類,並通過prototype來添加方法。好處大概有以下幾點:

    1.類方法可以都放在prototype中,可以提高性能效率。

    2.可以用prototype來實現繼承。

 

  但是缺點也不少,比如:

    1.通過prototype添加方法又臭又長,編碼很不方便。

        2.繼承對象時,整個繼承方法比較復雜,不容易實現。

 

      一番研究后,發現backbonejs中的繼承非常方便,因此想學習一下。

  backbone中的繼承是基於_.extend對prototype方法進行合並。

    // _就是underscore,如果項目沒有引進underscore,那么用$.extend替代也是一樣的。

  比如有一個base類:

var base = function(){}

// 添加prototype方法時,並不是直接添加
// 比如base.prototype.init = function(){}
// 而是通過下面下方進行添加
$.extend(base.prototype,{
    init:function(){},
    setSetting:function(){}
});

  然后有一個sub類,繼承base類。

var sub = function(){}

// 先用sub的自定義方法來合並base的prototype,再用base.prototype合並sub.prototype,最后返回的是最終的sub.prototype
$.extend(sub.prototype,base.prototype,{
  construcotr:sub, onclick:function(){} });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM