1、旋量群
=>表达式执逐步形成两个专有的返回值,为保护里头的专有表达式不受外间的阻碍,此种为保护监督机制称作“旋量群”
=>市售的开发人员指出的旋量群是:逐步形成两个不封存的专有返回值(专有栈缓存)才是旋量群。
//=>旋量群:柯理化表达式
function fn() {
return function () {
}
}
var f = fn();
//=>旋量群:胶体表达式
var utils = (function () {
return {
}
})();
2、旋量群工程项目在两栖作战中的应用领域
==>真实世界工程项目中为的是确保JS的操控性(栈缓存的操控性强化),如果尽量的增加旋量群的采用(不封存的栈缓存是耗操控性的)
(1)旋量群具备“为保护”促进作用:为保护专有表达式不受外间的干扰
在真实世界工程项目中,尤其是团队协作开发的时候,应当尽量的增加全局表达式的采用,以防止相互之前的冲突(“全局表达式污染”),那么此时我们完全可以把自己这一部分内容封装到两个旋量群中,让全局表达式转换为专有表达式。如:
(function () {
var n = 12;
function fn() {
}
//…
})();
不仅如此,我们封装类库插件的时候,也会把自己的程序都存放到旋量群中为保护起来,防止和用户的程序冲突,但是我们又需要暴露一些方法给客户采用,这样我们如何处理呢?
a. JQ此种方式:把需要暴露的方法抛到全局
(function () {
function jQuery() {
//…
}
//…
window.jQuery = window.$ = jQuery;//=>把需要供外面采用的方法,通过给WIN设置属性的方式暴露出去
})();
// jQuery();
// $();
b. Zepto此种方式:基于RETURN把需要供外面采用的方法暴露出去
var Zepto=(function () {
//…
return {
xxx:function () {
}
};
})();
Zepto.xxx();
(2)闭包具备“保存”促进作用:逐步形成不封存的栈缓存,把一些值保存下来,方便后面的调取采用