Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要了解javascript函数的帮助吗_Javascript_Jquery - Fatal编程技术网

需要了解javascript函数的帮助吗

需要了解javascript函数的帮助吗,javascript,jquery,Javascript,Jquery,我希望有人能解释一下JavaScript的以下用法 我有一个带有如下脚本的页面: (function($){ // code // and stuff })(jQuery); 我试图理解这段代码的作用,特别是: 开头的括号 $符号的用法 jQuery在末尾的括号中 谢谢 在最高级别,它声明一个函数并在同一语句中调用它 让我们将其分解为几个组成部分: 首先,我们可以在函数中使用$作为参数/变量名,就像其他任何东西一样: function foo($) { alert

我希望有人能解释一下JavaScript的以下用法

我有一个带有如下脚本的页面:

(function($){
     // code 
     // and stuff
})(jQuery);
我试图理解这段代码的作用,特别是:

  • 开头的括号
  • $
    符号的用法
  • jQuery在末尾的括号中

  • 谢谢

    在最高级别,它声明一个函数并在同一语句中调用它

    让我们将其分解为几个组成部分:

    首先,我们可以在函数中使用
    $
    作为参数/变量名,就像其他任何东西一样:

    function foo($)
    {
        alert($);
    }
    
    foo('hi'); //alerts 'hi'
    
    其次,我们可以将函数分配给变量:

    var foo = function($) {
        alert($);
    }
    
    foo('hi'); //alerts 'hi'
    
    最后,我们不必给函数命名,只需声明它们即可。我们将它们封装在括号中,将整个函数声明封装为一个var,然后调用它(如上所述):


    在您的例子中,
    jQuery
    是作为
    $
    参数传递到函数中的某个对象。可能是jQuery库根对象,因此可以对其调用函数。

    在最高级别,它声明一个函数并在同一语句中调用它

    让我们将其分解为几个组成部分:

    首先,我们可以在函数中使用
    $
    作为参数/变量名,就像其他任何东西一样:

    function foo($)
    {
        alert($);
    }
    
    foo('hi'); //alerts 'hi'
    
    其次,我们可以将函数分配给变量:

    var foo = function($) {
        alert($);
    }
    
    foo('hi'); //alerts 'hi'
    
    最后,我们不必给函数命名,只需声明它们即可。我们将它们封装在括号中,将整个函数声明封装为一个var,然后调用它(如上所述):


    在您的例子中,
    jQuery
    是作为
    $
    参数传递到函数中的某个对象。可能是jQuery库根对象,因此可以对其调用函数。

    这是一个匿名函数

    您提供的特定示例通常在jQuery(使用“$”)与另一个库(prototype也使用“$”)冲突时使用

    这意味着,每当在函数中使用“$”时,它都会引用jQuery对象

    正常:

    $("foo").doStuff()
    
    避免冲突:

    jQuery("foo").doStuff()
    
    使用匿名函数避免冲突:

    (function($){
      $("foo").doStuff();
    })(jQuery)
    

    这是一个匿名函数

    您提供的特定示例通常在jQuery(使用“$”)与另一个库(prototype也使用“$”)冲突时使用

    这意味着,每当在函数中使用“$”时,它都会引用jQuery对象

    正常:

    $("foo").doStuff()
    
    避免冲突:

    jQuery("foo").doStuff()
    
    使用匿名函数避免冲突:

    (function($){
      $("foo").doStuff();
    })(jQuery)
    

    让我们首先看看内部函数声明:

    function($){
         // code 
         // and stuff
    }
    

    这是一个匿名函数声明,其中一个参数名为
    $
    。然后将该函数包装在括号中,并通过将
    (jQuery)
    作为参数添加到
    jQuery
    来调用该函数。

    让我们先看看内部函数声明:

    function($){
         // code 
         // and stuff
    }
    
    这是一个匿名函数声明,其中一个参数名为
    $
    。然后将该函数包装在括号中,并通过将
    jQuery
    作为参数附加到
    jQuery
    来调用该函数

  • 括号括住匿名函数,以便可以立即调用它,而参数是对jQuery的引用

  • $
    在JavaScript中是一个有效的变量名,因此许多框架为了简洁起见都使用它。通过将它包含在这里作为函数参数,您表示希望使用
    $
    作为jQuery的别名。这可以让您的代码尽可能短,并节省用户的带宽

  • 在第一部分中回答-您正在向匿名函数发送对jQuery对象/框架的引用

  • 括号括住匿名函数,以便可以立即调用它,而参数是对jQuery的引用

  • $
    在JavaScript中是一个有效的变量名,因此许多框架为了简洁起见都使用它。通过将它包含在这里作为函数参数,您表示希望使用
    $
    作为jQuery的别名。这可以让您的代码尽可能短,并节省用户的带宽

  • 在第一部分中回答-您正在向匿名函数发送对jQuery对象/框架的引用

  • 简而言之:

    这声明了一个匿名函数,该函数接受一个由局部变量名$引用的参数,然后立即调用作为第一个参数传递的函数jQuery对象

    简而言之:

    在javascript中,函数声明如下:

    (function($){
         // code 
         // and stuff
    })(jQuery);
    
    函数foo(arg1、arg2){

    }

    稍后可以调用函数foo:

    foo(“arg 1”、“arg 2”)

    但在javascript中,函数是一流的公民;如果选择,可以将函数存储在变量中。执行此操作时,变量名是函数名,因此您可以这样编写:

    (function($){
         // code 
         // and stuff
    })(jQuery);
    
    var foo=函数(arg1、arg2){

    })

    后面的分号是必需的,因为变量声明(和赋值)是语句。稍后,可以调用函数foo:

    foo(“arg 1”、“arg 2”)

    这里的优点是,您可以将函数传递给另一个函数,或者将其存储在数组中,或者其他任何形式。这类函数称为匿名函数(因为它们本身没有函数名)

    在匿名函数foo内部,如上所述,您可以声明局部变量,这些变量保留在该函数的作用域内,而不存在于声明该函数的作用域中。例如,本地arg1和arg2变量不存在于变量foo的作用域中(但它们确实存在于存储在foo中的匿名函数中)

    这个技巧允许我们创建一个私有块,在这个块中我们可以控制事物的名称,而不必担心践踏其他人的名称空间

    您可以按照以下方式编写您提供的示例:

    var foo=fu