我正在阅读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通过可能会回答您的查询的中间构造函数深入探讨了继承。