HLJ 发布于
2018-08-12 17:57:18

JavaScript之闭包

JavaScript之闭包

闭包

  1. 是通过调用函数,产生临时的内存空间
  2. js是一门脚本语言,加载js有两个步骤: 1.加载定义(预加载)   2.执行代码
  3. 加载定义: var a;   //定义对象 
  4. function m();   //定义方法
  5. 闭包特性:闭包中的变量,外部不能访问(保护内部,防止变量污染)

----------------------------------------------------------------------------------

匿名函数: (function(){} () )

有名函数: var util=function(){}

----------------------------------------------------------------------------------

区别:   function fun() {   console.log(1)   }     fun();//调用

var fun=function(){   console.log(1)  }    

两者结果都是打印出  1 。  但两者有何区别呢???

其实就是就是前者开辟一个栈空间,而后者先开辟堆空间,再开辟栈空间 ,共开辟两个空间

jquery库源码解析后其实就是我们熟悉的闭包: ( function() {}   () ),有兴趣可以去试试

-----------------------------------------------------------------------------------

闭包例子帮助理解什么是闭包:

闭包具有就近原则,先找离自身最近的对象,如果找不到会像冒泡事件,一层一层往外层查找,直到找到对象。同时外部无法改变内部的属性。

var golbal="nike"

(function(golbal,tag){

console.log(golbal);

console.log(tag);

}(window,123))

//打印结果: window

123

 

再来一个案例:

var util=(function(){    //var util是暴露接口,已便调用传入

return:{

sayname:function(name){

console.log('hello ,'+name)

}

}

}())

util.sayname("Arthur")

//打印结果 hello , Arthur

--------------------------------------------------------------------------------------

怎么说呢,闭包是个好东西,要多使用,你会发现现在大多数人写js都是使用闭包的方法。因为它具有良好的特性。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2018-08-12/80.html
最后生成于 2024-05-27 22:52:48
此内容有帮助 ?
0