关于javascript中闭包的理解
来源:互联网 发布:好看的日本电网络视剧 编辑:程序博客网 时间:2024/06/07 09:41
/*闭包就是能够读取其他函数内部变量的函数, 在js中也可以简单地理解成定义在一个函数内部的函数。
在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的最大用处有两个,一个是读取函数内部的变量,另一个是让这些变量的值始终保持在内存中*/
/*function a(){
var n=0;
function inc(){
n++;
console.log(n);
}
inc();
inc();
}
a();*/
/*function a(){
var n=0;
this.inc = function(){
n++;
console.log(n);
};
}
var c = new a();
c.inc();
c.inc();*/
function a(){
var n =0;
function inc(){
n++;
console.log(n);
}
return inc;
}
var c =a();
c();
c()
/************************************************************/
function create_counter(initial) {
var x =initial || 0;
return {
inc: function () {
x += 1;
return console.log(x);
}
}
}
// var c1 = create_counter();
create_counter.inc();// 1
create_counter.inc();// 2
create_counter.inc();// 3
var c2 =create_counter(10);
c2.inc();// 11
c2.inc();// 12
c2.inc();// 13
/****************************************************/
'use strict';
// 定义数字0
var zero =function(f){
return function(x){
return x;
}
};
// 定义数字1;
var one=function(f){
return function(x){
return f(x);
}
};
// 定义加法;
function add(n,m){
return function(f){
return function(x){
return m(f)(n(f)(x));
}
}
}
console.log(add(one,one));
/***********************************/
最后用‘斐波那契数列’来帮助理解闭包原理
function fib(max){
var t,a=0,b=1,arr=[0,1];
while(arr.length<max){
t=a+b;
a=b;
b=t;
arr.push(t);
}
return arr;
}
console.log(fib(5));
console.log(fib(10));
阅读全文
0 0
- 关于javascript中闭包的理解
- javaScript 关于console的理解
- 关于Javascript对象的理解
- javascript中闭包的理解
- JavaScript中闭包的理解
- javascript 中闭包的理解
- JavaScript中闭包的理解
- 关于Javascript闭包的理解
- 关于 Javascript 的闭包理解
- 关于前端HTML javascript css 的理解
- 关于javascript中的constructor的一些理解
- 关于JavaScript中的继承的一些理解
- 关于setTimeout,理解JavaScript的定时机制
- 初学者关于javascript的一点理解
- 关于对JavaScript面向对象的理解
- 关于javascript中this的理解
- 关于Javascript中执行上下文的理解
- 关于JavaScript原型对象的理解
- yii2高级版,退出的时候报400错误。
- 为什么Set会去重
- WannaCry 勒索病毒新变种的防护
- 关于“挂证”,住建部释放重要信息!
- Android SQLite数据库—数据类型
- 关于javascript中闭包的理解
- MySql like通配符使用(mysql 正则表达式)
- php抓取https的内容
- js模块化编程
- MySQL DATE_FORMAT() 函数
- 用PHP实现用户登录和注册的功能
- 第九周作业1(LeetCode14)
- Raphael.animation()的巧妙用法
- web前端学习笔记-angular学习前必备知识