我有一个包含以下代码的脚本:
(function ($) {
// ...
})($);
任何人都可以解释如何阅读它吗?
答案 0 :(得分:8)
$
$
的值是否在外部范围内。如果外部作用域中的$
发生更改(通过为其指定新值),则内部作用域中$
的值将受到保护而不受更改(因为它是不同的)变量)。
这也为函数内声明的所有其他变量提供了一个干净的范围(如果他们应该使用var
)。
答案 1 :(得分:1)
'$'是JavaScript中的合法变量。它可以很容易地成为someCrazyLongVariableName
答案 2 :(得分:0)
它有点破坏了将$
符号封装成匿名函数的目的
它是一个自执行的匿名函数,以$
为参数
在大多数情况下,您使用此标记来避免js库冲突:假设您要在项目中使用jQuery和prototype。非常好,但他们都使用'$'标志......如何克服这个?
// jquery code here
(function($){
alert($ === jQuery);// the $ is a shortcut to jQuery
})(jQuery);
// non-jquery code here - ex: prototype
alert($ === jQuery);// the $ is NOT a shortcut to jQuery ANYMORE
答案 3 :(得分:0)
如果您没有特别考虑$,则摘录会创建一个javascript函数并在单个语句中调用它。
我不是百分百肯定,但我猜2 $变量将是一个不同的范围。
我觉得这个页面很有用,如果有点冗长: -
http://www.authenticsociety.com/blog/JavaScript_DollarSign
总之,调用变量a没有什么不同,但应该避免。