JavaScript高级程序设计 读书笔记之八 Function类及闭包
- Function类
- Function类的特点
- Function类本身也是一个函数,它可以像工厂函数一样构建新的函数实例。
- 使用Function构造函数构建函数,可以动态地创建函数语句。
- 可以将字符串形式的代码,通过Function的形式执行。
- Function构造函数的使用
- Function构造函数创建函数的形式:
new Function(arg1, arg2, ... argN, functionBody)
- arg1~argN:形式参数。
- functionBody:字符串形式的函数体。
- 示例:
javascript
// 使用Function构造函数创建函数
var add = new Function('arg1', 'arg2', 'return arg1 + arg2;');
console.log(add(1, 2)); // 输出3
- Function构造函数创建函数的形式:
- 闭包
- 闭包的概念
- 闭包:一个可以访问自由变量的函数。
- 自由变量:在一个函数中使用、但既不是函数参数也不是函数内部定义的变量。
-
闭包的作用
- 在需要多次访问某个变量时,使用闭包可以避免将该变量作为全局变量。
- 创建私有变量。
- 避免变量污染。
- 示例:
```javascript
// 使用闭包创建计数器函数
var counter = (function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
};
})();
console.log(counter.value()); // 输出 0
counter.increment();
console.log(counter.value()); // 输出 1
counter.decrement();
console.log(counter.value()); // 输出 0
```
以上就是《JavaScript高级程序设计》中关于Function类及闭包的笔记攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript高级程序设计 读书笔记之八 Function类及闭包 - Python技术站