Javascript jQuery插件';他的语法太奇怪了
对于下面代码中的语法“(function($)”和“(jQuery)”的含义,我有点麻烦Javascript jQuery插件';他的语法太奇怪了,javascript,jquery,Javascript,Jquery,对于下面代码中的语法“(function($)”和“(jQuery)”的含义,我有点麻烦 (function( $ ){ $.fn.myPlugin = function() { // Do your awesome plugin stuff here };})(jQuery); 你能解释一下它们是什么意思吗 如果我想将上述代码中的短语“(jQuery)”改为“(abc)”,那么如何做以及如何使用它 感谢您抽出时间回答我的问题。函数($)表示该函数采用单个参数,即变量$,该变量(与任何
(function( $ ){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};})(jQuery);
你能解释一下它们是什么意思吗
如果我想将上述代码中的短语“(jQuery)”改为“(abc)”,那么如何做以及如何使用它
感谢您抽出时间回答我的问题。函数($)
表示该函数采用单个参数,即变量$
,该变量(与任何参数一样)可在函数内部访问
$.fn.myPlugin
正在使用该参数
(function…(jQuery)
正在生成一个自动被调用的函数块,并将jQuery
作为参数传递
这样做的要点是确保人们通常用来表示jQuery的$
别名实际上是传递给jQuery对象的,而不是任何其他名为$
的变量
没有很好的理由将
jQuery
更改为abc
,除非变量abc
中有jQuery
实例化,它是一个立即调用的函数表达式。它允许您1)以这样的方式封装代码:任何变量都被限制在其范围内,而不是污染窗口环境;2)传入可以在代码中使用的参数
在这种情况下,Jquery
作为$
传入,因此您可以使用$
safe,因为您可以使用$
,而不会与可能将其用作别名的任何其他库发生冲突
您当然可以传入abc
以及jQuery
,前提是abc
存在
(function($, abc) {
$.fn.myPlugin = function() {
console.log(abc);
}
}(jQuery, abc));
如果将
jQuery
更改为abc
,则闭包内的$
将是abc
的值,而不是jQuery
。如果abc
未定义$。fn.myPlugin
将给出一个错误。你为什么要将其更改为abc?你的问题已经得到了回答。@bertl哇,Joel自己也回答了!看看这个答案: