JavaScript之闭包
2018-06-24 02:04:12来源:未知 阅读 ()
闭包
- 是通过调用函数,产生临时的内存空间
- 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都是使用闭包的方法。因为它具有良好的特性。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:git常用命令备忘
下一篇:JS的事件绑定、事件流模型
- javascript面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- 如何用javascript连接access数据库 2020-03-20
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash