2013-01-21 37 views
0

我有jQuery代码块如下;jQuery参数与参数的区别

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

现在我想了解

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

谢谢。

回答

1

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

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

形式上声明中的变量称为“参数”,调用中的变量称为“参数”。我认为在JS中会产生歧义,因为您可以使用伪数组访问所提供的参数。

3

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

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

传递给函数的“$”和最后指定的“jQuery”之间有什么区别?其中一个叫做参数而另一个参数?

没错。

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

否则从哪里输入$参数?


我会添加你似乎已经错过了一个问题:

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

它只是别名jQuery$的IIFE范围内,因此您可以放心地单独使用jQuery的$noConflict模式或不是的。对于开发插件和使用WP非常有用。

+0

“*否则从$参数将被填充的位置?*”。虽然我同意'$'和'jquery'之间的区别是参数和参数之间的区别,我会调用'$'参数和'jquery'参数。 – Bruno

+0

@布鲁诺我不好,刚起床。你是对的 - 'jQuery'作为形式参数输入函数。 –

0

1)自动执行,并立即执行的

你可以告诉,因为它有在末尾括号。

你写这样的功能:

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$之间的关系。

相关问题