用匿名函数包装的目的

Purpose of wrapping with anonymous function

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

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

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

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

第二种情况是jQuery的shorthand for "on document ready".

相当于:

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

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

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

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

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

的 shorthand

函数参数不必是匿名的,事实上,总是这样命名这样的函数是一种很好的做法$(function myDomReady() {})