用匿名函数包装的目的
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();
});
在第二种情况下,您使用 shorthand 作为 $(document).ready()
。这样 javascript 在执行之前等待所有 DOM 元素加载。该库需要加载所有元素才能工作。
传递给 jQuery constructor、$(function() {})
的函数是 $(document).ready(function() {});
的 shorthand
函数参数不必是匿名的,事实上,总是这样命名这样的函数是一种很好的做法$(function myDomReady() {})
。
我正在构建一个 chrome 扩展,并在我的内容脚本中包含了以下代码。 pep 是一个使事物可拖动的库。有趣的是,我的代码适用于案例 #2 但不适用于案例 #1。为什么?
第二种情况似乎是用匿名函数包装函数调用(虽然我不确定为什么在此之前需要jquery)
//1
$('#square').pep();
//2
$(function($) {
$('#square').pep();
});
第二种情况是jQuery的shorthand for "on document ready".
相当于:
$(document).ready(function() {
$('#square').pep();
});
在第二种情况下,您使用 shorthand 作为 $(document).ready()
。这样 javascript 在执行之前等待所有 DOM 元素加载。该库需要加载所有元素才能工作。
传递给 jQuery constructor、$(function() {})
的函数是 $(document).ready(function() {});
函数参数不必是匿名的,事实上,总是这样命名这样的函数是一种很好的做法$(function myDomReady() {})
。