在学习SignalR时,我在自动生成的集线器脚本中看到了如下所示的一些JS脚本模式。这个语法是什么?
(function(a,b,c){...}(e,f));
或在集线器中:
(function($, window, undefined){...}(window.jQuery, window));
答案 0 :(得分:3)
这被称为自动执行功能。它基本上声明了函数代码,然后立即调用它传递函数后看到的参数。在hubs方法的情况下,它将window.jQuery对象传递给'$'参数,将全局窗口对象传递给'window'参数并省略第三个参数,该参数将为'third'指定值'undefined'参数。所有代码都包含在一个闭包中。
使用闭包中的所有代码通常会使闭包内的代码在闭包范围内保持独立(或私有),并有助于防止污染全局命名空间(窗口对象)。
答案 1 :(得分:1)
我不是JS的专家,但我认为使用这种语法定义函数然后用参数调用它(window.jQuery,window)