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

标签 javascript

我一直在使用这种模式来组织我的 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/

相关文章:

javascript - 从服务器发送 JSON 需要 JSON.parse 两次

javascript - 如何为点击事件实现 Omniture 自定义链接跟踪?

javascript - 使用 jquery 遍历 jsonp

javascript - 无法从Angular 7本地文件夹中的JSON文件中读取数据

javascript - 未捕获的语法错误 : Unexpected end of input JavaScript

javascript - 编辑此表达式以在固定顶部转动固定底部

javascript - 从 Jstree 禁用某些复选框

javascript - 编写 Sequelize 迁移以更新删除属性上的表

javascript - 使父 div 宽度 float 子元素内的第二个子元素居中

javascript - JavaScript eval 的这种使用是否可以接受?