如何/可以调用另一个函数内的函数?

时间:2015-05-05 19:19:18

标签: javascript node.js function scope

所以我想要访问的函数的基本设置是

(function (self, $) {

        function init() {
            ...
        }

        function stuff() {...
        }

        self.onload = init;
    }
})(window, jQuery);

如果可能,我如何从控制台调用任何这些功能?例如,我想做

stuff("things");

我的一个想法是完全删除包装游戏代码和自己运行init的函数,但我不知道如何让我的代码替换页面上已有的代码。

2 个答案:

答案 0 :(得分:1)

您的函数位于一个闭包内,您必须将它们设置为全局或可从全局对象访问,以便可以立即从控制台访问它们。 e.g。

var myprogram = (function (self, $) {

        function init() {
            ...
        }

        function stuff() {...
        }

        self.onload = init;
        return {
            stuff: stuff
        };
})(window, jQuery);

现在您可以从控制台调用myprogram.stuff()。但是,如果您没有进行测试,我不会建议这种封装中断。

您还可以使用debbuger设置断点,然后从控制台调用它们,这是我的建议,请参阅下面的链接以获取更多信息。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger

https://developer.mozilla.org/en-US/docs/Tools/Debugger

答案 1 :(得分:0)

出于调试目的,您可以将功能添加到窗口范围,如下所示:

(function(self, $) {
    function stuff() {
        ...
    }
    window.stuff = stuff; // Remove this line in production
})(window, jQuery);

现在您可以从控制台调用stuff()