使用参数调用JavaScript自执行函数

时间:2015-12-09 19:59:11

标签: javascript jquery self-executing-function

我正在阅读并尝试一些自我执行JavaScript函数的示例。我找到了一些关于如何调用它们的例子,但我仍然对创建和调用它们的正确方法感到困惑。例如,如果我在这个自执行函数中有一个foo方法,它接受2个参数,param1和param2。我该如何调用此方法?您可以传递全局对象,例如窗口,文档等。那些非全局但需要函数执行某些操作的参数呢?

以下是一个例子:

foo.js

(function (window, document, $, undefined) {
    function foo(param1, param2) {
        //do stuffs here
    }
})(window, document, jQuery);

的index.html:

 <script src="~/Scripts/Custom/foo.js"></script>
 <script type="text/javascript">
     var myFoo = new Foo("parameter1","parameter2"); 
 </script>

1 个答案:

答案 0 :(得分:4)

在全球范围内没有功能是Ben Alman所称的IIFE的全部要点。它们的一点是在不影响全局范围的情况下调用一些代码。您可以根据需要创建任意数量的计数器,它们不会相互影响,因为它们位于不同的“范围”中。

如果坚持使用IIFE在全局范围内使用Foo,您想要更新您的示例并需要将其分配给您在IIFE中传递的窗口参数。

(function (window, document, $, undefined) {
    window.Foo = foo;
    function foo(param1, param2) {
        //do stuffs here
    }
})(window, document, jQuery);

这样您就可以在全局范围内使用Foo,因此可以使用new Foo(param, param)