我正在阅读YUI2.8.1源代码yahoo / yahoo.js。

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如此实现,但我无法弄清楚。
任何人都可以对此有所了解吗?

谢谢

最佳答案

我对JavaScript还是很陌生,所以如果我错了,请纠正我,但是在您的示例中,您似乎在假设超类的构造函数(它们将永远不接受任何参数)。

This page通过可能会回答您的查询的中间构造函数深入探讨了继承。

10-08 02:11