繁体   English   中英

读取立即调用的函数表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM