我正在阅读这篇关于制作 JS 框架的博客文章。我(在一定程度上)熟悉 ECMA 原型的概念,以及一般的范围和闭包。但是,我不确定我是否确定以下代码的来龙去脉:
var myFramework = (function (window, document) {
var /* Global variables */
myFramework = function (el, options) {
// code
};
myFramework.prototype = {
// code
};
return myFramework;
})(window, document);
我理解为什么要传递窗口和文档(以节省资源,如本视频所述)。尤其让我感到困惑的是,为什么必须同时拥有myFramework = function () {}
和myFramework.prototype
?它是干什么用的?为什么不在this
里面使用声明myFramework = function () {}
呢?