我正在开发一个包含大量JavaScript和jQuery代码库的网站,并且试图为它提供一个更有条理的类似于插件的结构。我read an article展示了如何使用自动执行的匿名函数来帮助实现范围,它还允许您的库使用“ window.namespace = window.namespace || {}”技术跨文件扩展。

例如:

//Self-Executing Anonymous Function:
(function( skillet, $, undefined ) {

    //Private Property
    var isHot = true;

    //Public Property
    skillet.ingredient = "eggs";

    //Public Method
    skillet.fry = function() {
        // do stuff...
    };

    //Private Method
    function addItem( item ) {
        // do stuff...
    }
}( window.skillet = window.skillet || {}, jQuery ));


演示:jsFiddle

我的问题是,如何在skillet.fry()下添加一个公共方法。因此,我可以调用诸如skillet.fry.cancel();之类的东西。

或者,如果有更好的方法可以做到这一点,我欢迎您提出建议。

最佳答案

您可以尝试这样的事情。它将允许您声明that闭包中可用的其他变量(以及cancel())。

skillet.fry = (function() {
    var that = {};

    that.cancel = function() {
        //...
    }

    return that;
})();

10-07 20:02