我一直在使用这种模式来组织我的 JavaScript 中使用的常用方法,但并未真正理解它。
(function(newSubNamespace) {
newNamespace.someNewFunction = function(args){
//do something
}
}(window.appNamespace.newSubNamespace =
window.appNamespace.newSubNamespace || {},
jQuery));
我知道这是将定义为 someNewFunction
的函数添加到 window.appNamespace.newSubNamespace
并且 window.appNamespace.newSubNamespace || {}
会创建 newSubNamespace(如果它尚不存在),但我无法弄清楚 ,jQuery
位的作用。
此外,如果我必须命名它,它会只是扩展吗?
我一直在使用这个模式,但没有完全理解它,想了解更多。
最佳答案
, jQuery
在这种特殊情况下似乎没有用(除非您使用 arguments
对象访问第二个参数),因为您的外部匿名函数不不要进行第二次正式论证。
通常,执行此操作的代码可能如下所示
(function(something, $) {
...
}(whatever, jQuery));
以便 jQuery 被分配到匿名函数内的正式参数 $
(此处为“IIFE”:立即调用的函数表达式)。这用作在您的 IIFE 中为 jQuery 保留 $
的一种方式,当其他库也可能尝试使用 $
标识符时。
关于javascript - 读取立即调用的函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836450/