我有jQuery代码块如下;jQuery参数与参数的区别
(function($){
//Normal code goes here
})(jQuery);
现在我想了解
- 如果这是一个自动执行的功能?如果是,为什么?
- 传递给函数的“$”和最后指定的“jQuery”有什么区别?其中一个叫做参数而另一个参数?
- 是否有必要在最后指定“jQuery”。
谢谢。
我有jQuery代码块如下;jQuery参数与参数的区别
(function($){
//Normal code goes here
})(jQuery);
现在我想了解
谢谢。
是的,这是“自我执行”。内部部分是一个“函数表达式”,并且(必要的)参数然后使其立即被调用,因此是“立即调用的函数表达式”的更常用术语。
变量$
是函数的局部范围。 jQuery插件通常以这种方式编写,因此即使jQuery处于“无冲突”模式,也可以在内部使用常用的缩写,因为(全局)$
变量正在被别的东西使用。
形式上声明中的变量称为“参数”,调用中的变量称为“参数”。我认为在JS中会产生歧义,因为您可以使用伪数组访问所提供的参数。
如果这是一个自动执行功能?如果是,为什么?
是和否。这是一个Immediately-Invoked Function Expression,但有些人倾向于称这些“自我执行”,即使这通常与递归的想法有关。
传递给函数的“$”和最后指定的“jQuery”之间有什么区别?其中一个叫做参数而另一个参数?
没错。
是否有必要在最后指定“jQuery”。
否则从哪里输入$
参数?
我会添加你似乎已经错过了一个问题:
为什么使用立即调用的函数表达式?
它只是别名jQuery
到$
的IIFE范围内,因此您可以放心地单独使用jQuery的$
在noConflict
模式或不是的。对于开发插件和使用WP非常有用。
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
与$
之间的关系。
“*否则从$参数将被填充的位置?*”。虽然我同意'$'和'jquery'之间的区别是参数和参数之间的区别,我会调用'$'参数和'jquery'参数。 – Bruno
@布鲁诺我不好,刚起床。你是对的 - 'jQuery'作为形式参数输入函数。 –