08-箭头函数,匿名方法,自执行方法,闭包

Catalogue
  1. 1. 参考资料

1,箭头函数, 方法体只有一句。
//箭头函数
List myList = [“橘子”,”苹果”,”香蕉”];

//常规写法
myList.forEach((value){
print(value);
});

//箭头函数, 只有一句代码
myList.forEach((value)=>print(value));

// 返回一个新的数组, 要求 >2 的 数字乘于2,其他的不变
List list = [2,1,4,6];
var newList = list.map((value)=> value > 2 ? value * 2 : value);
print(newList.toList()); // [2, 1, 8, 12]

2, 匿名函数

//匿名函数
var b = (){
print(“这是要执行的代码1”);
print(“这是要执行的代码2”);
};
b();

3, 自执行方法
//自执行方法 – 不带参数
((){
print(“自执行方法体”);
})();

//自执行方法 – 带参数
((value){
print(“传进来的数据:”+value);
})(“这是参数字符串”);

4, 闭包

1, 全局变量的特点: 全局变量常驻内存,全局变量污染全局。
2, 局部变量的特点: 不常驻内存,会被垃圾回收机制回收,不会污染全局。

想要实现的功能:

1, 常驻内存
2, 不污染全局

产生了闭包, 闭包可以解决这个问题
闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收。

闭包的写法: 函数嵌套函数, 并 return 里面的函数,这样就形式了闭包。

//闭包
fn(){
var a = 123; /** 不污染全局 */

return(){
  a++;
  print(a);
};

}

var b = fn();
b();
b();
b();

/** 执行结果:
124
125
126
*/

参考资料