用匿名函数包装的目的

时间:2015-06-27 15:38:13

标签: javascript jquery google-chrome-extension anonymous-function

我正在构建chrome扩展,并在我的内容脚本中包含以下代码。 pep是一个可以拖拽事物的库。有趣的是,我的代码适用于案例#2而不是#1。为什么会这样?

似乎第二种情况是使用匿名函数包装函数调用(虽然我不确定为什么之前需要jquery)

//1
$('#square').pep();

//2
$(function($) {
    $('#square').pep();
});

3 个答案:

答案 0 :(得分:6)

第二个案例是jQuery的“on document ready”的简写。

相当于:

$(document).ready(function() {
    $('#square').pep();
});

文档:https://api.jquery.com/ready/

答案 1 :(得分:1)

在第二种情况下,您使用$(document).ready()的简写。这样,javascript在执行之前等待加载所有DOM元素。库需要加载所有元素才能工作。

https://learn.jquery.com/using-jquery-core/document-ready/

答案 2 :(得分:1)

传递给jQuery constructor $(function() {})的函数是$(document).ready(function() {});

的简写

函数参数不必是匿名的,事实上,总是命名像$(function myDomReady() {})这样的函数是一个好习惯。