子调用函数关住作用域#5
避免函数和函数用到的变量都成为全局的,通常将其写为 IIFE 形式进行封装
并通过添加给 window,暴露构造函数,使其能在全局调用。
window.Custom = Custom;
创建
在一些更深的函数内,this 的指向跟所需对象不一致时,比如,定时器内部的 this 指向的是 window。通常在构造函数内声明变量 that 赋值为 this
子调用函数的问题#16
将多个js文件按照顺序合并到一个文件里,减少网页 HTTP 文件请求。
有关自调用函数的语句可以在开头加一个 ; 结束前面的语句。
js 代码压缩
消除换行、注释、空格,混淆标识符
达到缩减代码的目的,用于上线,提高加载速度。
自调用函数的参数#18
在【#5】中,我们将一段代码封装进自调用函数时,其中的参数作用域都封在了自调用函数内,于是我们通过 window 暴露自定义的构造函数。
此时,将 window 作为参数传入自调用函数,可以减少在调用window暴露函数时的作用域跳出,提高效率。
(function(formal_window){
function Custom(){...};
formal_window.Custom = Custom;
})(actual_window);
另外,再传一个参数 undefined,可以避免低版本浏览器的兼容问题。