搜尋

首頁  >  問答  >  主體

關於javascript繼承的疑問

如果要實作物件A繼承B,B繼承C,除了把B的實例賦值成A的原型,除了把C的實例賦值成B的原型,有沒有別的實作方式?本人初學者,沒有查到相關的資料,請指教

仅有的幸福仅有的幸福2747 天前509

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-19 10:39:35

    換句話說,是否可以把你的問題理解為:“除了原型繼承,javascript還有什麼繼承方式?”,如果是這樣,答案是否,因為javascript的繼承就是基於原型鏈的機制實現的。
    如果是問原型繼承的寫法,那倒是有幾種:
    1)new構造函數創建;(即問題裡提到的這種)
    2)Object.create;
    1)物件字面量;
    具體用法,資料就很多了:
    https://developer.mozilla.org...

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:39:35

    除了原型繼承還有js提供的API:callapply將this的指向改變,借用方法
    call用法:

    a.call(b,pro1,pro2,...)

    apply用法:

    a.apply(b,[pro1,pro2,...]) 

    兩者差異在於前者傳遞參數的方式是一個一個傳遞,後者傳遞參數的方式是透過傳遞數組,然後鋪開來

    這兩者還有其他用法,例如講偽數組轉換為真數組:
    Object.prototype.tostring.call(偽數組)

    回覆
    0
  • 取消回覆