javascript - 如何通俗解释闭包和闭包的作用?

查看:154
本文介绍了javascript - 如何通俗解释闭包和闭包的作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何通俗的解释以下闭包(closure)和闭包在具体项目中的应用实例?
php中,

function demo(){
    $a=10;
    $b=20;
    $fun=function() use ($a,$b){
        echo $a+$b;
    };
}

demo();

是否和下面作用类似?

class cls{
    public $a=10;
    public $b=20;
    public function fun(){
        echo $this->a+$this->b;
    }
}

$obj=new cls;
$obj->fun();

一般会在具体项目中什么情况下使用?能否给出小例子

解决方案

public 改成 private 就差不多了。

闭包是函数式编程里面的概念,随着计算机语言慢慢朝着函数式编程语言的的方向发展,很对语言里都开始支持匿名函数(以及lamada表达式)以及包。匿名函数用途很大,闭包算是为支持 lamada 表达式而存在的。

可是像,Java等这样的语言,大家给习惯用类写原来的代码,在这里面我觉得使用闭包的话,可以减小代码量,就这样!
前几天,写过一个关于闭包的草稿,js的
https://segmentfault.com/q/1010000004736461

这篇关于javascript - 如何通俗解释闭包和闭包的作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆