[英]what does this construct do in javascript
我真的很想了解,以下结构在 JS 中的含义,但我无法弄清楚:
请问有人可以告诉我吗? 谢谢!
(function () {
...
}());
// Or in jQuery plugins i saw it very often
(function( $ ){
...
})( jQuery );
(function () {
...
}());
定义一个 function。 立即调用它。 不会将其存储在任何地方。
通常用来限制scope里面的变量。
(function( $ ){
...
})( jQuery );
完全一样,只是它有一个参数。 使用这样无用的非描述性变量$
可以使用而不会与所有其他认为$
是变量的好名称的库发生命名空间冲突。
这称为闭包,其要点是封装您的内部代码,以免将其与全局 scope 混合。
阅读本文了解更多详情
第二部分
(function( $ ){
...
})( jQuery );
用于使您的代码能够使用 $ 作为对 jQuery object 的引用,而不会与其他 javascript 库(如 Prototype)发生冲突。
请参阅 jQuery 文档: http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_for_Magic_jQuery-jQuery-
这些是闭包。 有大量关于这种 JavaScript 编程风格的信息,但它的要点是它立即执行 function。 如果您仔细查看语法,这很有意义 -
( )
导致执行执行。
//Function immediately executes.
(function() {
});
//Wait we can do better, let's pass in an argument
(function($) {
//$ is now a local variable inside this tightly scoped function
//So that I can describe this as a closure I've added members to this function
var foo = 0,
bar = function() {
return foo;
};
return {
foo: bar
};
}(jQuery));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.