相关疑难解决方法(0)

406
推荐指数
9
解决办法
12万
查看次数

这个JavaScript/JQuery语法如何工作:( function(window,undefined){})(window)?

你有没有看过JQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:

(function( window, undefined ) {

  //All the JQuery code here 
  ...

})(window);
Run Code Online (Sandbox Code Playgroud)

我读过一篇关于JavaScript Namespacing的文章和另一篇名为" 一对重要的Parens "的文章,所以我知道这里发生了什么.

但我以前从未见过这种特殊的语法.在那undefined做什么?为什么window需要通过然后再次出现?

javascript syntax jquery

153
推荐指数
5
解决办法
4万
查看次数

这种自我调用匿名函数变体背后的原因

在github上查看代码时,我发现了以下内容:

(function() {

}).call(this);
Run Code Online (Sandbox Code Playgroud)

这显然是一个自我调用的匿名函数.但为什么这样写呢?我习惯于看到规范的变体(function() {})().

使用.call(this)自动调用匿名函数有什么特别的优势吗?


编辑:看起来某些commonjs环境this在模块的顶层设置为非全局值.哪些,以及它们this可能想要保留的内容是什么?

javascript module anonymous-function commonjs coffeescript

25
推荐指数
2
解决办法
6089
查看次数