2010-08-18 76 views
2

我在閱讀YUI2.8.1源代碼yahoo/yahoo.js。爲什麼YUI.lang.extend以這種方式實現Inheritance?

的YAHOO.lang.extend方法來實現這樣http://github.com/yui/yui2/blob/master/build/yahoo/yahoo.js

我不明白爲什麼它會創建另一個F函數。恕我直言,下面的代碼也應該工作(忽略覆蓋部分)

function extend (subc, superc) { 
    if (!superc||!subc) { 
      throw new Error("extend failed, please check that " + 
        "all dependencies are included."); 
    } 
    subc.prototype=new superc(); 
    subc.prototype.constructor=subc; 
    subc.superclass=superc.prototype; 
} 

一定有原因,YUI實現是這樣,但我不能弄明白。任何人都可以對此有所瞭解?

感謝

回答

0

我還是新來的JavaScript,以便糾正我,如果我錯了,但在你的例子,似乎你正在對父類的構造函數的假設(他們絕不會接受任何參數)。

This page深入繼承與可能回答您的查詢的中間構造函數的繼承。

相關問題