[英]Reading an Immediately-Invoked Function Expression
我一直在使用这种模式来组织我的JavaScript中使用的常用方法,而不是真正理解它。
(function(newSubNamespace) {
newNamespace.someNewFunction = function(args){
//do something
}
}(window.appNamespace.newSubNamespace =
window.appNamespace.newSubNamespace || {},
jQuery));
我知道这是将someNewFunction
定义的函数添加到window.appNamespace.newSubNamespace
并且window.appNamespace.newSubNamespace || {}
window.appNamespace.newSubNamespace || {}
创建newSubNamespace如果它还不存在,但我无法弄清楚,jQuery
位的作用。
此外,如果我不得不说出这个,它会延伸吗?
我一直在使用这种模式而没有完全理解它,并希望了解更多。
在这种特殊情况下, jQuery
似乎没用(除非你使用arguments
对象访问第二个参数),因为你的外部匿名函数没有采用第二个正式参数。
通常,执行此操作的代码可能看起来像
(function(something, $) {
...
}(whatever, jQuery));
这样jQuery被分配到匿名函数内的形式参数$
(这里,“IIFE”: 立即调用函数表达式 )。 这用作在IIFE中为jQuery保留$
的方法,当其他库也可能尝试使用$
identifier时。
我猜你从其他地方复制了这个,你错过了匿名函数的第二个参数。 即它应该是
(function(newSubNamespace, $) {
...
你这样做只是为了确保$ sign是jQuery而不是别的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.