如何调用私有函数?

时间:2011-12-24 07:05:18

标签: javascript

我已经读过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”?

2 个答案:

答案 0 :(得分:4)

由于barFOO内定义,因此只能从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
            }
        };

    })();