相关疑难解决方法(0)

这个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万
查看次数

为什么要定义一个匿名函数并将其作为参数传递给jQuery?

我正在查看backbone.js截屏视频中的优秀peepcode演示代码.在其中,骨干代码全部包含在传递jQuery对象的匿名函数中:

(function($) {
  // Backbone code in here
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

在我自己的骨干代码中,我只是将我的所有代码都包装在jQuery DOM'ready'事件中:

$(function(){
  // Backbone code in here
});
Run Code Online (Sandbox Code Playgroud)

第一种方法的优点是什么?这样做会创建一个匿名函数,然后立即执行jQuery对象作为函数参数传递,有效地确保$是jQuery对象.这是唯一的一点 - 保证jQuery绑定到'$'还是有其他理由这样做?

javascript jquery backbone.js

94
推荐指数
3
解决办法
7万
查看次数

用$(函数等)启动javascript代码

我正在研究Backbone和来自http://todomvc.com/的todo示例应用程序. 我注意到有三种方法可以在文件中启动代码:

$(function() {
 // code here
});

$(function( $ ) {
 // code here
});

(function() {
 // code here
}());
Run Code Online (Sandbox Code Playgroud)

我不明白这些差异,何时我应该使用另一个.

我也看到一些人使用它来启动他们的代码:

$(document).ready(function(){
  // code here
});
Run Code Online (Sandbox Code Playgroud)

从我所看到的,这是完整的写作方式吗?

以更一般的方式,我是否应该始终将我的javascript代码包含在每个文件中?

谢谢你的建议.

javascript jquery backbone.js

29
推荐指数
2
解决办法
1万
查看次数

标签 统计

javascript ×3

jquery ×3

backbone.js ×2

syntax ×1