jQuery参数和参数之间的区别

时间:2013-01-21 10:38:48

标签: javascript jquery javascript-framework

我有如下jQuery代码块;

(function($){
  //Normal code goes here
})(jQuery);

现在我想了解

  1. 如果这是一个自动执行功能?如果是,为什么?
  2. 传递给函数的“$”与最后指定的“jQuery”有什么区别?其中一个被称为参数和另一个参数吗?
  3. 是否有必要在最后指定“jQuery”。
  4. 谢谢。

3 个答案:

答案 0 :(得分:3)

  

如果这是一个自动执行的功能?如果是,为什么?

是和否。它是一个Immediately-Invoked Function Expression,但有些人倾向于将这些称为“自执行”,即使这通常与递归的概念有关。

  

传递给函数的“$”和最后指定的“jQuery”有什么区别?其中一个被称为参数和另一个参数吗?

完全。

  

是否有必要在最后指定“jQuery”。

否则将填充$参数?


我还要再添一个你似乎错过的问题:

  

为什么要使用立即调用的函数表达式?

它只是在{II}范围内将jQuery别名为$,因此您可以安全地使用$,而不管jQuery是否处于noConflict模式。对于开发插件和使用WP非常有用。

答案 1 :(得分:1)

是的,这是“自我执行”。内部部分是一个“函数表达式”,然后(必要的)参数(jQuery)会导致它被立即调用,因此更常用的术语是“立即调用的函数表达式”。

变量$在函数范围内是本地的。 jQuery插件通常以这种方式编写,因此即使jQuery处于“无冲突”模式,也可以在内部使用公共$缩写,因为(全局)$变量正被其他东西使用

正式声明中的变量称为“参数”,调用中的变量称为“参数”。我认为在JS中出现了歧义,因为您可以使用arguments伪数组访问提供的参数。

答案 2 :(得分:0)

1)自我执行和立即执行

你可以说,因为它最后得到了parens。

你写了这样一个函数:

function myFunc () {}

或喜欢

var myFunc = function () {};

你调用的函数如下:

myFunc();

你把它写成(function () {})();所以它会在它结束时立即触发。

2)参数是函数所期望的。 参数就是你提供的功能。

var number_arg = 35,
    string_arg = "Bob";

function myFunc (number_param, string_param) {
    console.log(number_param, string_param);
}

myFunc(number_arg, string_arg); // 35 "Bob";

params可以与参数命名不同的事实意味着你可以"别名"函数内部的值不同。

function myFunc ($) { console.log($); }

myFunc("SUPERLONGSTRINGOFDOOMISWHATI'MPUTTINGINHERE");

myFunc(MYAPP.Module.sub_module.plug_in);

同时,在函数内部,所有这些事情都可以使用,只需使用$

3)"别名"是jQuery$的对比。