我已经读过JavaScript并没有真正的“静态”变量(当我说“静态”时,我的意思是它在过程式编程风格中,比如C,而不是C ++)
我设法从stackoverflow上的这个链接获取此代码部分: I've Heard Global Variables Are Bad, What Alternative Solution Should I Use?
var FOO = (function() {
var my_var = 10; //shared variable available only inside your module
function bar() { // this function not available outside your module
alert(my_var); // this function can access my_var
}
return {
a_func: function() {
alert(my_var); // this function can access my_var
},
b_func: function() {
alert(my_var); // this function can also access my_var
}
};
})();
如果可能的话,如何间接调用函数“bar”?
答案 0 :(得分:4)
由于bar
在FOO
内定义,因此只能从FOO
内部引用,在这方面就像my_var
一样。
此处,我已alert
和[{1}}通过a_func
上的电话取代了b_func
来电。
bar
答案 1 :(得分:2)
不确定我完全理解你的问题。如果您希望外部呼叫者访问内部功能栏,您可以使用如下所示的返回结构:
var FOO = (function() {
var my_var = 10; //shared variable available only inside your module
function bar() { // this function not available outside your module
alert(my_var); // this function can access my_var
}
return {
a_func: bar,
b_func: function() {
bar(); // this function can also access my_var
}
};
})();