jQuery的函数$(jQuery)语法

10

可能是重复问题:
jQuery:(function($) {})(jQuery)的意思是什么?


我偶然发现了以下代码(包含在一个文件中),但我真的无法理解它的真正含义。

(function ($) {
    function doSomething1(somedata) {

    }

    function doSomething1(somedata) {

    }
})(jQuery);

问题1: 在jQuery上下文中,这个语法是什么意思?

问题2: 我们如何调用这些函数,比如从其他文件(例如HTML索引文件和其他JavaScript文件)中调用?
谢谢


1
这是一个自执行匿名函数。请查看此文章:http://briancrescimanno.com/2009/09/24/how-self-executing-anonymous-functions-work/ - user372551
这个问题之前已经被问过很多次了。 - Russ Cam
1
@Russ Cam:很遗憾,它只是由一堆符号组成,这使得在SO或Google上搜索变得非常困难... - BoltClock
1
这些符号确实使搜索变得更加困难,但是由于数量如此之多,它们很容易被找到。例如,将以下内容输入谷歌搜索框中 site:stackoverflow.com what does (function($) { mean jQuery (如果我直接粘贴URL,则不会出现锚链接)。 - Russ Cam
3个回答

8

这个语法对于jquery来说并没有什么特别之处,它是普通的javascript。这里只是简单的函数

function ($) {
    // some code here...
}

请注意,它需要名为$的参数,并使用参数jQuery(显然是jQuery框架的全局对象)调用。

通常在一个页面上有几个js框架(jquery、dojo、prototype等)都重新定义全局变量$时会这样做。但是通过这段代码,在doSomething1doSomething2内部,您始终可以调用$('.test')并确保调用将由jquery而不是dojo处理。因为在这种情况下,$不是全局变量,而是函数参数。


0

我不确定你的问题是什么,但 (function() 表示它是自执行的,

你可以通过在主页面导入文件并调用 doSomething1() 来调用它们。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接