//说一下JS的作用域SCOPE
//JS只有两个作用域,全局作用域和函数作用域
//立即执行函数表达式IIFE (Imdiately Invoked Function Expression)
// 一,啥是自函数IIFE,就是定义完就能运行的函数
// 自函数的几种写法
// 1, ( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” )
var a = (function(a,b){
return a+b
})(1,2)
console.log(a)
// 2, ( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " ) )
var b = (function(a,b){return a+b}(3,4))
console.log(b)
// 3
//var c = !function(a,b){return a+b}(5,6)
//console.log(c)
//我理解的闭包,通过内部函数持有外部函数变量,这样该变量处于函数作用域中,不会污染到全局作用域的变量
// 通过闭包写一个计数器,count不需要声明为全局变量
var time = function(){
var count = 0
return function(){
return count++
}
}
var add = time()
console.log(add())
console.log(add())
console.log(add())
console.log(add())
<a href="// https://blog.csdn.net/qappleh/article/details/80311443">JS作用域与闭包的讲解</a>