javascript-如何通俗解释闭包和闭包的作用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何通俗解释闭包和闭包的作用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1617字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何通俗解释闭包和闭包的作用?](/upload/InfoBanner/zyjiaocheng/243/4b4dd318c27444bfbc31d5c977527828.jpg)
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();
一般会在具体项目中什么情况下使用?能否给出小例子
回复内容:
如何通俗的解释以下闭包(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
面向对象进价之函数对象,函数对象又涉及到函数作用域传递,闭包简单从字面上可以理解为封闭作用域打包传递。一般的函数返回后函数作用域(函数栈内存)消亡,函数调用时产生函数作用域(函数空间入栈)。而闭包产生函数在返回时消亡自身作用域同时又产生新的作用域,新作用域不进栈,造成栈从平级关系出现层次化关系。比如a(普通)函数调用b(闭包产生)函数,b返回c(闭包)函数,函数栈底部是a的作用域,上面是b的作用域,b函数返回,b出栈只剩a,产生的c函数作用域被传递到a作用域里面,出现a作用域包含c作用域,而c的作用域是从b继承(复制)的,就好像b作用域没有消亡一样。
内容总结
以上是互联网集市为您收集整理的javascript-如何通俗解释闭包和闭包的作用?全部内容,希望文章能够帮你解决javascript-如何通俗解释闭包和闭包的作用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。