【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
0、一句话定义闭包,子函数可以定义父函数的局部变量
1、几个关键字
define 定义宏(C语言),定义常量(php)
static 定义相当于位置在函数内的全局变量(生命周期与函数定义域无关),但只对函数可见,函数可改变其值
const 定义常量(PHP 5.3.0+)
2、php使用静态变量:
<?php
function add(){
static $n = 0;
$n++;
echo $n . '<br />';
}
add();//输出 1
add();//输出 2
3、js使用闭包
function f1(){
var n=0;
function f2(){
n++;
console.log(n);
}
return f2;
}
var add=f1();
add();//输出 1
add();//输出 2
//闭包两大特点:1、访问局部变量,2、一直保存在内存中
4、个人js闭包的理解,欢迎斧正
1、由于js没法像一般语言C++,PHP等使用static达到函数内全局变量的效果,故使用闭包的一直保存在内存的特性达到了这个效果,如上面php和js代码的效果
2、闭包的特点使函数拥有了类的感觉,访问局部变量好比访问私有属性,闭包相当于类的公共函数,调用外部函数好比类实例化,始终保持在内存中好比类具有全局的生命周期,bigger感觉瞬间提高了。
来源:oschina
链接:https://my.oschina.net/u/861926/blog/499520