【发布时间】:2017-06-08 03:45:26
【问题描述】:
我了解以下是$( document ).ready() 的简写:
$(function() {
console.log( "ready!" );
});
我也了解匿名 JS 函数是什么,但是当使用一个函数调用 jQuery 时,它是否会做任何特别的事情。即:
(function() {
console.log( "ready!" );
})($);
后者只是一个使用 jQuery 的普通匿名 JS 函数(即它不会被视为$(document).ready() 的简写,因此会立即执行)?
我觉得这个问题之前一定有人问过,但如果有的话我找不到。
【问题讨论】:
-
附带说明,我倾向于(强烈)更喜欢使用
jQuery(function($) {//...$ is guaranteed to be jQuery here });- 准备好“无冲突安全”文档。 -
(function() { console.log( "ready!" ); })($)接受参数 $ 但不执行任何操作。 -
在第二种情况下,您将 jquery 实例传递给匿名函数(不知道为什么)。它将立即执行。
-
后者实际上只是一个匿名函数。我什至不确定它有什么作用。但是,您实际上可以找到的东西是
( function( $ ) {/* your code*/ })(jQuery),它确保您的代码具有$作为 jQuery(标识符有时会被某些不同的库覆盖)。 -
@cale_b 谢谢。我知道 IIFE 是什么,所以不寻求解释。我只是想确保 jQuery 没有做一些神奇的事情并以某种方式区别对待它。
标签: javascript jquery