js中的闭包与回调函数

js中的闭包与回调函数

js闭包的理解

js闭包,简单的就一句话:函数里再嵌套一个函数。
举个简单的例子:

function f1(){
	var n = 123;
	function f2(){    //f2是一个闭包
	    var x=3;
		return x;       //f2方法返回一个值
	};
	n=f2();             //将f2方法返回的值赋值给n变量
	alert(n);
};
f1();                    //运行

说明:
定义一个函数f1,并且在里面也定义了一个函数f2,f1不能访问f2里面的变量(除非f2将值return出来),也就是说,不能直接将f2中的变量值赋给f1中的变量,对于f1来说,f2里面的变量是封闭的,所以叫做闭包。例子如下:

function f1(){
	var n = 123;
	function f2(){    //f2是一个闭包
	    var z=789;
	    var x=n;                 //f2里面可以访问f1里面的变量
		return x;       //f2方法返回一个值
	};
	// n=z;   将会报错
	var y=f2();             //将f2方法返回的值赋值给n变量
	alert(y);
};
f1();                    //运行

js回调函数的理解

js回调函数,也很简单,和闭包一样,也有两个函数,只不过不是包含嵌套的关系,而是并行的关系,一个函数运行完之后再调用另外一个函数。
举例:

function a(callback){      //callback参数,指的是回调函数
	var m = 1;
	var n = 2;
	alert(callback(m,n));
}
function b(m,n){
	return m+n;
}
a(b);

说明:
运行函数a,同时将函数b赋值给callback参数,运行到alert的时候,先运行括号里面的回调函数,也就是调用函数b(同时传参m和n值),最后再运行alert

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值