我有一个我认为相当简单的问题,但我找不到答案。我有一个创建的对象文字,它对函数进行分组,我想知道如何创建一个位于对象文字内部并且可由该对象文字中的所有函数编辑/访问的变量。目前我知道如何做到这一点的唯一方法是创建一个全局变量,但我想停止以这种方式填充全局变量。为了更好地描述我在找什么 fiddle
谢谢,任何帮助。
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
}
};
}());
这是在Functional Programming中拥有私有(private)变量的方式.
关于javascript - 基本的javascript代码布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942471/