侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

JavaScript每日一题 20170207

2024-04-28 星期日 / 0 评论 / 0 点赞 / 33 阅读 / 1454 字

请用自己的话简述:什么是闭包?闭包的作用是什么?我先说说我的理解,(说的有误,请狮子们指正)。在JavaScript权威指南第五版那本书中说了这么一句话,所有的函数都可以说是一个闭包(因为所有的函数都

请用自己的话简述:

什么是闭包?闭包的作用是什么?

我先说说我的理解,(说的有误,请狮子们指正)。在JavaScript权威指南第五版那本书中说了这么一句话,所有的函数都可以说是一个闭包(因为所有的函数都可以访问到全局作用域的变量),所以闭包的定义可以说成:函数内部可以访问函数外部变量的函数就可以称为闭包

function f(){    var local='变量';    function foo(){        console.log(local);    }   foo();}f();

这就是一个闭包,有的人说,闭包需要函数嵌套函数,然后返回一个函数这样才称为一个闭包。

function f2(){    var local=1;    function bar(){        local++;        return local;    } return bar;}f2();

为什么要return bar??

local和bar()构成了一个闭包,如果不使用return你就无法使用这个闭包。把return bar改成window.bar=bar;也是一样的,只要让外面可以访问到这个bar函数就可以了。

为什么要嵌套函数??因为需要局部变量。为什么要用局部变量?如果我们用全局变量,所有的人都可以直接访问这个全局变量,那怎么办?我们只能用局部变量。但是用了局部变量别人又访问不到,怎么办?可以暴露一个访问器,让别人间接访问。

广告 广告

评论区