当我在;流动;可以这么说吗?也就是说,值是如何在对象之间移动的?
jQuery(function($) {
// ...
})
我的假设是:$
是由jQuery
传递给它的内部函数的吗?还是被function()
从window
全局对象/插件定义等中获取,然后传递给jQuery
函数?从外到内还是从内到外?
感谢
这与任何其他回调函数一样。$
是一个参数变量,它的值来自调用方提供的参数。
在这种情况下,调用者是jQuery
函数。当它调用这个函数时,它将自己作为参数传递。
它与名为$
的全局变量无关。你也可以写
jQuery(function(jq) {
// ...
});
然后在函数内部,可以编写类似jq('.classname').hide()
而不是$('.classname').hide()
的内容来调用jQuery方法。
您发布的代码用于全局变量$
用于jQuery之外的。这确保了在回调函数的主体中,可以使用$
作为jQuery的缩写,而不会与其他用法发生冲突。
你的假设@Manaus是绝对正确的。
jQuery()
是具有回调函数的调用方函数,该回调函数接收$
作为要用作局部变量的参数。现在,由于$
是一个参数,您可以像myJQ
一样随意命名它,它仍然可以正常工作。
使用这种语法的好处是,$可以在代码中全局定义/设置为其他东西,但JQuery将确保从调用程序JQuery((内部和外部引用$的含义没有冲突。
$(function() { ... })
与jQuery(function($) { ... })
相同,但LATTER也使$在函数内部可用,无论它在外部设置了什么。也就是CCD_ 19==CCD_ 20。