像以下的代码
var testModule = (function(){
var counter = 0;
return {
incrementCounter: function(){
return ++counter;
},
resetCounter: function(){
counter = 0;
}
};
})();
是否可以理解为return 返回一个匿名的对象, 赋给testModule ,然后testModule拥有了incrementCounter和resetCounter两个可以访问闭包的方法 ? {}和里面的内容是否可以称为一个匿名对象,js有没有这个概念 ?
Objectliteral,翻译为对象字面量,其实和Anonymous是一个目的,因为有些对象我们并不经常使用,所以就不给他添加引用,让GC回收掉,这样的好处大概有两个:
防止污染命名空间
利用了闭包特性
所以DC大神觉得这东西很不错,而且你知道,JSON就是这样来的。
PS:JS中很多特性的目的和其他语言中类似的特性目的是一样的,仅仅叫法不一样,比如箭头函数和懒不大,哦不lambda。