javascript - 基本的javascript代码布局

标签 javascript jquery

我有一个我认为相当简单的问题,但我找不到答案。我有一个创建的对象文字,它对函数进行分组,我想知道如何创建一个位于对象文字内部并且可由该对象文字中的所有函数编辑/访问的变量。目前我知道如何做到这一点的唯一方法是创建一个全局变量,但我想停止以这种方式填充全局变量。为了更好地描述我在找什么 fiddle

http://jsfiddle.net/aT3J6/

谢谢,任何帮助。

var clickCount = 0;

/* I would like to place clickCount inside hideShowFn Object but all function inside need access to it, so global within hideShowFn */

hideShowFn = {
    init:function(){  
     $('.clickMe').click(this.addToCount);                
    },

addToCount:function(){
    clickCount++;
    $('<p>'+ clickCount + '</p>').appendTo('body');
    }
}

hideShowFn.init(); 

最佳答案

创建一个立即调用并返回对象的函数,函数内部有私有(private)变量,如下所示:

var obj = (function () {
    var privateStuff = 'private';
    return {
        func1: function () { 
            //do stuff with private variable
        },
        func2: function () {
            //do stuff with private variable
        }
    };
}());

http://jsfiddle.net/BE3WZ/

这是在Functional Programming中拥有私有(private)变量的方式.

关于javascript - 基本的javascript代码布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942471/

相关文章:

javascript - 当元素以编程方式移动到鼠标下方时,不会触发 jQuery 悬停

javascript - 如何将 JavaScript 数组添加到 localStorage 中作为临时数据存储?

javascript - 在显示 div 之前加载 CSS BG 图像

javascript - 单击其内容时 Materialise UI 下拉菜单关闭

javascript - 如何在 IE9 及更早版本中进行非 JSONP 跨域 Ajax 调用

Javascript:获取图像中点击的 X、Y 坐标

javascript - 只读 asp 下拉列表

jquery - 将 JSON 数据附加到 ListView

javascript - 获取用于在页面上加载 div 的 URI?

javascript - Angular UI 日历 : events are not displayed in the calendar