欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
一、常见的闭包
 
function outer() {
 
  var a = 1
 
  function inner() {
 
    console.log(a)    //1
 
  }
 
  inner()
 
}
 
outer()
 
二、实例详解
 
function createFunc() {
 
  var result = new Array()
 
  for (var i = 0; i < 10; i++) {
 
    result[i] = function () {
 
      console.log(i)
 
    }
 
  }
 
  return result
 
}
 
var result = createFunc()
 
result[0]() //10
 
result[1]() //10
 
result[2]() //10
 
result[3]() //10
 
result[4]() //10
 
result[5]() //10
 
result[6]() //10
 
result[7]() //10
 
首先在代码执行前,会先创建一个全局的对象,其中包含着全局的属性,并且将其放入全局上下文作用域链顶端,并且也将其放入每一个函数的作用域链顶端。以这个例子为例。如图所示
 
1
 
在初始化结束后,开始执行代码,此时就会创建一个新的对象,叫做Active 
 
Object,其中放入一些参数,并且将其压入createFunc函数的作用域链中。
 
因为在createFunc中仍然定义函数result[i],所以在执行代码前,该函数会形成作用域链。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64893.shtml