变量名提升,闭包的功能和使用
2018-12-09 11:19:12来源:博客园 阅读 ()
一、变量名的提升
JavaScript运行中会经过代码的预解析和代码执行过程。
var num=123;
function foo(){
console.log(num); //undefined
var num=456;
console.log(num); //456
}
foo();
代码预解析过程会将变量声明和函数声明提升。如下:
var num;
function foo(){
var num;
console.log(num); //这里因为num只声明了,但是没有定义所以打印是undefined,并且这里找到的是函数foo中声明的变量,不是全局中的num。
num=456;
console.log(num); //这里由于给num赋值为456,所以打印456
}
num=123;
foo();
二、闭包的使用和功能
①闭包是为了实现私有访问的函数。
②写一个函数内定义一个新的函数,返回新函数,用新函数获得函数内的数据。
③写一个函数内定义一个对象,对象中绑定了多个函数,返回对象,利用对象的方法访问函数内的数据。
④过多使用闭包会造成内存泄漏,所以,当我们不再使用一个闭包的时候,将其赋值为null。
1、返回对象来达到获取函数内部的数据,并且修改:
function foo(){
var num=Math.random();
return {
get_num:function(){
return num;
},
set_num:function(value){
num=value;
}
};
}
var o=foo();
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 在JavaScript中尽可能使用局部变量的原因 2020-03-08
- Node.js中环境变量process.env的一些事详解 2020-01-17
- JavaScript判断变量是对象还是数组的方法 2019-12-25
- JavaScript闭包函数访问外部变量的方法 2019-12-24
- 13 个JavaScript 性能提升技巧 2019-10-12
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