变量声明的语法?var a=(function(){})()
Syntax of variable declaration? var a = (function() { })()
可能重复:
JavaScript对象/函数/类声明周围的括号是什么意思?
我在一个网站上找到了以下代码。
var testModule = (function(){
var counter = 0;
return {
incrementCounter: function() {
return counter++;
},
resetCounter: function() {
console.log('counter value prior to reset:' + counter);
counter = 0;
}
};
})();
因此它遵循语法var a = (blah balh..)()
它到底是什么意思?像a =()()
这样的变量声明的含义是什么。。
它定义了一个一次性函数并立即执行。您提供的代码名为Module Pattern——有关其属性的更多信息,请参阅此处:http://www.yuiblog.com/blog/2007/06/12/module-pattern/
一个正常的函数可以这样创建:
var f1 = function() {
console.log('bar');
};
然后你可以这样称呼它:
f1();
但是在您提供的示例中,该函数被定义并执行一次,并且该函数返回一个具有两个函数的对象:incrementCounter
和resetCounter
。你可以这样称呼它们:testModule.incrementCounter()
和testModule.resetCounter()
当您有一个单独的对象,并且想要封装一些只对闭包中定义的函数可用的属性时,模块模式非常有用。
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 直接在函数声明上使用function.prototype.bind
- jQuery:.click(function(){(element),collapse('show',f
- 获取HTML属性中CSS声明的值
- 对API数据使用声明性绑定
- 可以Resharper在我的javascript函数声明中添加分号
- 如果连接类型为none,则Javascript Function Only警报
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- 如何在javascript中声明成员函数?获取“TypeError: Object.function is not a
- 为什么Function.x在声明Function.protype.x后仍然有效
- 变量声明的语法?var a=(function(){})()
- Javascript中函数声明的形式是' function fx(){} '是LHS还是RHS查找
- AngularJS:块作用域声明(let、const、function、class)在严格模式之外还不支持
- 未捕获的SyntaxError:在严格模式之外还不支持块范围的声明(let、const、function、class)
- 使用function-prototype声明Javascript命名空间
- 是所有的函数声明&在幕后调用new Function()创建的表达式
- 在apply(Javascript)的重新声明中调用Function.prototype.apply
- 调用声明的函数x.f = function()从其他文件——js