2010-08-18 86 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深入继承与可能回答您的查询的中间构造函数的继承。

相关问题