这个构造在javascript中做什么
what does this construct do in javascript
本文关键字:什么 javascript 更新时间:2023-09-26
我真的试图理解以下构造在JS中的含义,但我无法理解:
- 它是如何工作的
- 为什么&在什么情况下应该使用这种构造
有人能告诉我吗?非常感谢。
(function () {
...
}());
// Or in jQuery plugins i saw it very often
(function( $ ){
...
})( jQuery );
(function () {
...
}());
定义一个函数。立即呼叫。不储存在任何地方。
通常用于限制其内部变量的范围。
(function( $ ){
...
})( jQuery );
完全一样,只是它有一个论点。使用时,可以使用毫无帮助的非描述性变量$
,而不会与所有其他库发生名称空间冲突,这些库认为$
是一个好的变量名称。
这被称为闭包,它的要点是封装内部代码,以免将其与全局范围混合。
阅读此了解更多详细信息
的第二部分
(function( $ ){
...
})( jQuery );
用于使您的代码能够使用$作为对jQuery对象的引用,而不会与其他javascript库(如Prototype)发生冲突。
请参阅jQuery文档:http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery
这些是闭包。关于这种风格的JavaScript编程有很多信息,但其要点是它是一个立即执行的函数。如果你仔细观察语法,这是完全合理的-
CCD_ 3导致执行发生。
//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));
相关文章:
- 这是什么 ==- javascript 运算符
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 我可以使用什么Javascript或Jquery库来处理带有IE8的GANTT图表
- 这是什么JavaScript语法
- 并行开发同步/阻塞和异步/非阻塞库api的好方法是什么?(JavaScript)
- 我用什么javascript解析器在node的javascript中重新实现jsCoverage
- 两个代码之间的区别是什么(javascript的循环)
- 在循环中定义函数的最佳方法是什么?- JavaScript
- 存在什么 JavaScript 库,允许部分加载较大的图像
- 可以使用什么 Javascript 正则表达式模式来捕获可能嵌套括号中的文本
- 我如何知道在运行 V8 时编译了什么 JavaScript
- 这是什么javascript命令
- 我如何使用Firebug来告诉我正在激发什么JavaScript
- 如何处理这个琐事游戏的答案I'我在做什么?(Javascript)
- 我的代码中缺少什么?Javascript和XML
- duojs使用什么javascript模块api
- 我使用什么JavaScript模式从原型方法访问私有方法
- 确定在chrome中调用什么javascript函数
- 在一个函数中,返回另一个函数的目的是什么?(Javascript)
- 看看当你按下一个按钮时使用了什么(javascript)函数