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. $执行后返回的是一个对象;