博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是闭包,变量的作用域和自执行函数
阅读量:6090 次
发布时间:2019-06-20

本文共 1207 字,大约阅读时间需要 4 分钟。

作用域和闭包以及自执行函数

作用域

作用域分为2种

1、全局作用域

全局作用域就是在js的任何位置都能访问过

2、函数作用域

只能在函数里面调用的称之为函数作用域

闭包

嵌套在函数里面的函数及周边的变量叫闭包

闭包存在的问题是:周边变量不会被释放,常驻内存中
闭包的缺点:消耗内存

下面我们做一个闭包的示例

在函数中我们调用另一个函数,让第二个函数
/闭包function test(){    var b = 2;   return function(){        var c = 3;        console.log(b);    }}var new1 = test();new1();
打印结果得到的是2
下面我们在调用一次new1()
function test(){    var b = 2;    return function(){        var c = 3;        console.log(b);    }}var new1 = test();new1();  new1();
打印的结果是2 2
由此我们得到一个结论,我们要想打印下面这个函数的结果,我们就用闭包做
function test(){    var b = 2;}var new1 = test();new1();
我们刚才说到闭包存在的问题是:周边变量不会被释放,常驻内存中下面我们举例说明
function test(){    var b = 2;   return function(){        b++                    console.log(b);    }}var new1 = test();new1();new1();
打印的结果是3 4
我们在调用一个函数
function test(){    var b = 2;   return function(){        b++                    console.log(b);    }}var new1 = test();new1();new1(); new1();
现在的输出结果是 3 4 5

自执行函数(立即执行函数)

自执行函数有2中写法

//第一种写法(function (){    console.log(1);})();//第二种写法(function (){    console.log(2)}());
自执行函数也是也是一个闭包
var aa =  (function (){    var a = 55;    function test(){        a++;        console.log(a);    }    return test;})();aa();aa();
打印结果56 57

以上就是变量作用域和闭包以及自执行函数的介绍

转载地址:http://fvmwa.baihongyu.com/

你可能感兴趣的文章
Eclipse编译PostgreSQL 9.2.2
查看>>
Class字节码文件结构详解
查看>>
[又拍云]云计算中又一架重要的马车
查看>>
Ruby on Rails 学习笔记(一)
查看>>
Linux下安装pymysql步骤
查看>>
PHP+MySQL数据库教程
查看>>
jQuery UI Datepicker 添加时分秒
查看>>
linux查看和终止进程
查看>>
Beyond Compare比较表格小技巧
查看>>
以太坊·代币开发详解
查看>>
LibreOffice 中文版安装指南
查看>>
c++中调用c代码的3 种方法
查看>>
ISO C 标准定义的头文件
查看>>
nginx配置
查看>>
joomla1.5前台组件开发过程分享(附中文开发教程两本)
查看>>
基于ORACLE的乐观锁实现原理
查看>>
java.util.List的remove()方法使用技巧
查看>>
ruby 安装openssl支持
查看>>
:before
查看>>
如何选择ESB
查看>>