JavaScript之闭包

gooood个人博客网站

JavaScript

JavaScript之闭包

闭包

是通过调用函数,产生临时的内存空间

js是一门脚本语言,加载js有两个步骤: 1.加载定义(预加载)   2.执行代码

加载定义: var a;   //定义对象 

function m();   //定义方法

闭包特性:闭包中的变量,外部不能访问(保护内部,防止变量污染)

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

匿名函数: (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都是使用闭包的方法。因为它具有良好的特性。

本文内容由用户注册发布,仅代表作者或来源网站个人观点,不代表本网站的观点和立场,与本网站无关。本网系信息发布平台,仅提供信息存储空间服务,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。如因作品内容侵权需删除与其他问题需要同本网联系的,请尽快通过本网的邮箱或电话联系。 
THE END
分享
二维码
< <上一篇
下一篇>>