Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将$作为函数参数传递(jQuery)_Jquery - Fatal编程技术网

将$作为函数参数传递(jQuery)

将$作为函数参数传递(jQuery),jquery,Jquery,我遇到了这样的代码: function doSomething($, $variable){ ... } (function ($){ $(function () { doSomething ($, $('.div')); }); }(jQuery)); 这与在jQuery内部定义doSomething()并删除$相同吗 谢谢 它是否与在jQuery中定义doSomething()并删除$相同 如果你的意思是,它与: (function ($){ $(func

我遇到了这样的代码:

function doSomething($, $variable){
  ...
}



(function ($){

  $(function () {
   doSomething ($, $('.div'));
  });

}(jQuery));
这与在jQuery内部定义
doSomething()
并删除
$
相同吗

谢谢

它是否与在
jQuery
中定义
doSomething()
并删除
$
相同

如果你的意思是,它与:

(function ($){

  $(function () {
    function doSomething($, $variable){
    }
    doSomething($('.div'));
  });

}(jQuery));
…那么不是,因为在您问题的版本中,
doSomething
显然是全局的,而如果您在另一个函数中定义它,则不是

问题末尾的结构旨在通过创建函数并调用它,传入
jQuery
并将其作为名为
$
的参数接受,以防止
$
模式下的
$
冲突。可能是作者没有意识到jQuery将对自身的引用传递到ready回调中,因此代码可以更简单:

function doSomething($, $variable){
  ...
}

jQuery(function($) {
   doSomething ($, $('.div'));
});
它是否与在
jQuery
中定义
doSomething()
并删除
$
相同

如果你的意思是,它与:

(function ($){

  $(function () {
    function doSomething($, $variable){
    }
    doSomething($('.div'));
  });

}(jQuery));
…那么不是,因为在您问题的版本中,
doSomething
显然是全局的,而如果您在另一个函数中定义它,则不是

问题末尾的结构旨在通过创建函数并调用它,传入
jQuery
并将其作为名为
$
的参数接受,以防止
$
模式下的
$
冲突。可能是作者没有意识到jQuery将对自身的引用传递到ready回调中,因此代码可以更简单:

function doSomething($, $variable){
  ...
}

jQuery(function($) {
   doSomething ($, $('.div'));
});

第一个函数是一个IIFE,它关闭
$
,并将值设置为
jQuery
。它通常用于避免
$
被其他代码覆盖

在该IIFE中,
$
将始终是
jQuery
,但在IIFE之外,它可能不是

内部函数
$(函数(){..
只是一个DOM就绪处理程序,它在执行文档内部的代码之前等待文档加载


doSomething
函数是在IIFE之外定义的,并且不能访问IIFE中的参数,因此
$
可能是未定义的,或者是该范围内的jQuery以外的内容,因此作者决定将
$
作为参数传递给
doSomething($,$variable)
,这有点难读,因为传递的值和参数都有相同的名称。

第一个函数是一个IIFE,它关闭
$
,并将值设置为
jQuery
。它通常用于避免
$
被其他代码覆盖

在该IIFE中,
$
将始终是
jQuery
,但在IIFE之外,它可能不是

内部函数
$(函数(){..
只是一个DOM就绪处理程序,它在执行文档内部的代码之前等待文档加载


doSomething
函数是在IIFE之外定义的,并且不能访问IIFE中的参数,因此
$
可能是未定义的,或者是该范围内的jQuery以外的内容,因此作者决定将
$
作为参数传递给
doSomething($,$variable)
,这有点难读,因为传递的值和参数都有相同的名称。

是的,看起来有些人过度封装了东西。
$
就像任何其他变量一样:你可以将其作为函数参数传递,也可以将其作为外部作用域中的全局变量。你可以参考这篇文章以了解有关它。它很好地解释了这个主题。是的,看起来有些人过度包装了东西。
$
就像任何其他变量一样:你可以将它作为函数参数传递,或者将它作为外部范围中的全局变量。你可以参考这篇文章来清楚地理解它。它对这个主题的解释很好。