调用 JavaScript 带参数的自执行函数
Invoking JavaScript Self Executing Function with Parameters
我正在阅读并尝试一些自执行 JavaScript 函数的示例。我找到了几个关于如何调用它们的例子,但我仍然对创建和调用它们的正确方法感到困惑。例如,如果我在这个自执行函数中有一个 foo 方法,它接受 2 个参数,param1 和 param2。我该如何调用这个方法?您可以传递全局对象,例如 window、文档等。那些不是全局但需要函数执行某些操作的参数呢?
这是一个例子:
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>
在全局范围内没有函数是 Ben Alman 所称的 IIFE 的全部意义所在。它们的重点是在不影响全局范围的情况下调用一些代码。您可以根据需要创建任意数量的计数器,并且它们不会相互影响,因为它们是分开的 "scope".
如果坚持使用 IIFE 在全局范围内使用 Foo,您想要更新示例并需要将其分配给您在 IIFE 中传递的 window 参数。
(function (window, document, $, undefined) {
window.Foo = foo;
function foo(param1, param2) {
//do stuffs here
}
})(window, document, jQuery);
这样您将在全局范围内拥有 Foo,因此您可以使用 new Foo(param, param)
我正在阅读并尝试一些自执行 JavaScript 函数的示例。我找到了几个关于如何调用它们的例子,但我仍然对创建和调用它们的正确方法感到困惑。例如,如果我在这个自执行函数中有一个 foo 方法,它接受 2 个参数,param1 和 param2。我该如何调用这个方法?您可以传递全局对象,例如 window、文档等。那些不是全局但需要函数执行某些操作的参数呢?
这是一个例子:
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>
在全局范围内没有函数是 Ben Alman 所称的 IIFE 的全部意义所在。它们的重点是在不影响全局范围的情况下调用一些代码。您可以根据需要创建任意数量的计数器,并且它们不会相互影响,因为它们是分开的 "scope".
如果坚持使用 IIFE 在全局范围内使用 Foo,您想要更新示例并需要将其分配给您在 IIFE 中传递的 window 参数。
(function (window, document, $, undefined) {
window.Foo = foo;
function foo(param1, param2) {
//do stuffs here
}
})(window, document, jQuery);
这样您将在全局范围内拥有 Foo,因此您可以使用 new Foo(param, param)