嵌套函数中值的行进方向



当我在;流动;可以这么说吗?也就是说,值是如何在对象之间移动的?

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。

最新更新