Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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 如何使用jQuery';谁的名称空间有效?_Javascript_Jquery_Syntax - Fatal编程技术网

Javascript 如何使用jQuery';谁的名称空间有效?

Javascript 如何使用jQuery';谁的名称空间有效?,javascript,jquery,syntax,Javascript,Jquery,Syntax,可能重复: 我的具体意思是当你这样做的时候: (function ($) { ... })(jQuery); 我以前从未见过这种语法。如何调用该函数?我理解你这样做的时候: jQuery(function ($) { ... }); 因为函数正在传递给jQuery,当DOM就绪时,jQuery可以运行作为参数传递的任何函数,但第一个函数不同。重复的 我将在这里发布我的答案,尽管杰夫·阿特伍德似乎希望我们接受重复:() 编写插件时使用此约定,以确保与使用$notation的其他Ja

可能重复:

我的具体意思是当你这样做的时候:

(function ($) {
  ...
})(jQuery);
我以前从未见过这种语法。如何调用该函数?我理解你这样做的时候:

jQuery(function ($) {
  ...
});
因为函数正在传递给jQuery,当DOM就绪时,jQuery可以运行作为参数传递的任何函数,但第一个函数不同。

重复的

我将在这里发布我的答案,尽管杰夫·阿特伍德似乎希望我们接受重复:()


编写插件时使用此约定,以确保与使用$notation的其他Javascript库没有冲突,同时确保插件作者仍然可以使用此notation:

(function($){
    ...
})(jQuery); 
作者声明了一个带有单个参数($)的匿名函数,然后立即调用它并将jQuery对象传递给它。这样可以确保调用该函数并定义其中的所有内容

较长的符号可能是:

function MyDefs($){
    ...
}
MyDefs(jQuery);
尽管这样会在全局命名空间中创建一个变量MyDefs。匿名函数模式将全局命名空间保留为空,以避免冲突。

重复的

我将在这里发布我的答案,尽管杰夫·阿特伍德似乎希望我们接受重复:()


编写插件时使用此约定,以确保与使用$notation的其他Javascript库没有冲突,同时确保插件作者仍然可以使用此notation:

(function($){
    ...
})(jQuery); 
作者声明了一个带有单个参数($)的匿名函数,然后立即调用它并将jQuery对象传递给它。这样可以确保调用该函数并定义其中的所有内容

较长的符号可能是:

function MyDefs($){
    ...
}
MyDefs(jQuery);

尽管这样会在全局命名空间中创建一个变量MyDefs。匿名函数模式将全局命名空间保留为空,以避免冲突。

这是一个匿名函数。当你写作时:

(function ($){
  ..
})(jQuery);
这主要相当于:

function the_function($) {
  ..
}

the_function(jQuery);
function the_function() {
  var $ = jQuery;
  ..
}

the_function();
唯一的区别是第一个函数不创建名为的函数,因此不会产生意外地用该名称覆盖现有函数或变量的风险。当然,所有这些都相当于:

function the_function($) {
  ..
}

the_function(jQuery);
function the_function() {
  var $ = jQuery;
  ..
}

the_function();

这种构造的要点是,在函数中定义的任何变量都是局部变量,因此不能意外覆盖全局范围内的任何变量或函数。例如,函数中的代码使用
$
来表示
jQuery
对象,但这将与其他同样使用
$
的库(例如Prototype)冲突。通过将
$
的用法包装在函数内部,函数外部的原型代码不会受到影响。

这是一个匿名函数。当你写作时:

(function ($){
  ..
})(jQuery);
这主要相当于:

function the_function($) {
  ..
}

the_function(jQuery);
function the_function() {
  var $ = jQuery;
  ..
}

the_function();
唯一的区别是第一个函数不创建名为的函数,因此不会产生意外地用该名称覆盖现有函数或变量的风险。当然,所有这些都相当于:

function the_function($) {
  ..
}

the_function(jQuery);
function the_function() {
  var $ = jQuery;
  ..
}

the_function();

这种构造的要点是,在函数中定义的任何变量都是局部变量,因此不能意外覆盖全局范围内的任何变量或函数。例如,函数中的代码使用
$
来表示
jQuery
对象,但这将与其他同样使用
$
的库(例如Prototype)冲突。通过将
$
的用法包装在函数内,函数外的原型代码不会受到影响。

这一个:也可能更多。对不起,我确实尝试过搜索,但没有看到这些。这一个:也可能更多。对不起,我尝试过搜索,但没有看到这些。哦,是的,duh!现在你已经指出了这一点,这一点非常明显哦,是的,嗯!现在你已经指出了这一点,这一点非常明显