我想了解这个javascript函数模式
I want to know about this javascript function pattern
可能重复:
这是什么";(function(){})”,括号内的函数,在javascript中是什么意思
javascript匿名函数
(函数())()
这在许多js库中使用,如jquery、YUi
这被称为模块模式。这个想法是有一个封装的模块,它不能与您或其他人创建的任何其他模块冲突。您可以在该模块中创建公共和私有方法。参见:Js Pattern
我不确定(function())()
是什么意思,但我会假设你指的是(function() { … })()
。大致相同于:
f = function() { … }; // Define a function.
f(); // Call it.
唯一的区别是它这样做不需要变量。
它是一个匿名的自执行函数。它是匿名的,因为它没有命名,并且是自执行的,所以它可以运行(没有其他方法可以运行未命名的函数)。
封闭一个谨慎的代码模块特别有用,因为它可以充当一个闭包,防止变量泄漏到全局命名空间中。
您立即调用一个带有特定参数的匿名函数。
一个例子:
(function(name){ alert(name); })('peter') This alerts "peter".
在jQuery的情况下,您可以将jQuery作为参数传递,并在函数中使用$。因此,您仍然可以在noConflict模式下使用jQuery,但可以使用方便的$:
jQuery.noConflict() (function($){ var obj = $('<div/>', { id: 'someId' }); })(jQuery)
它只需立即执行括号中的代码(第一个块返回一个函数,第二对parens执行它)。
以这两个片段为例:
function foo() {
print 'foo';
}
(function() {
print 'foo';
})();
第一个函数在调用foo()之前不会执行任何操作;而第二个将立即打印"foo"。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别