每天 10 分钟,学习 JavaScript —— (六)IIFE

246 阅读1分钟

IIFE

Immediately-invoked Function Expressions,立即调用函数表达式

作用

  • 隐藏实现
  • 避免污染外部(全局)命名空间
  • 编码js模块
(function() {
    var a = 3
    console.log(3) // 3
})()
var a = 4
console.log(a) // 4
(function() {
    var a = 3
    function test() {
        console.log(a + 1) // 4
    }
    window.$ = function() { // 向外暴露一个全局函数
    return {
        test: test // 返回一个对象,属性是test,函数类型
        }
    }
})()
$().test() // 1. $是一个函数;2. $执行后返回的是一个对象;