javascript - 如何在另一个公共(public)方法下添加一个公共(public)方法?

标签 javascript jquery

我正在开发一个带有大型 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() 下添加公共(public)方法。所以我可以调用诸如 Skillet.fry.cancel(); 之类的东西

或者,如果有更好的方法来做到这一点,我愿意接受建议。

最佳答案

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

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

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

    return that;
})();

关于javascript - 如何在另一个公共(public)方法下添加一个公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15374318/

相关文章:

jquery - 分离元素并追加而不在 div 中进行乘法

javascript - jQuery 1.9 浏览器检测

javascript - 如何使用 React 找到与 anchor onClick 匹配的 ID?

jquery - 删除 Jquery 地址中的历史记录条目

javascript - 使用 em 使用 javascript 调整所有包含元素的大小

jquery - jquery 1.3.2 中的 index() 替代方案

javascript - 丰富 :jQuery not working on JS call

javascript - jQuery Mobile ListView 样式在清空并动态重新创建列表项后不刷新

javascript - 如何将图片高度和宽度传递给 html 灯箱

javascript - 是否可以创建一个强加 Angular 过滤器的 css 类?