js函数闭包与改变this指向方法

1**. js高级对象**
apply与call的使用方式
都可以改变this指向,这个方法会被当前的对象使用,同时这个方法中的this对象就是当前的对象,再调用方法时改变了this的指向

//使用方式
函数名.apply(对象,[参数1,参数2,参数3]);
函数名.call(对象,参数1,参数2,参数3);
//bind的使用方式与区别
复制一个方法或者是函数,是在复制的同时改变了this的指向
使用方式:函数.bind(对象,参数1,参数2.....)--->返回值是复制后的这个函数

//高阶函数--使用的时候函数作为参数使用,函数作为返回值使用
函数作为参数使用的时候,这个函数可以是匿名函数,也可以是命名函数


作用域和作用域链及预解析
闭包模式:函数中有另外一个函数,或者函数中有另外一个对象,里面是函数或者是对象都可以使用外面函数中定义的变量或者数据,此时形成闭包
function f1(num){
	return function(){
		console.log(num);
	}
}
f1(20);

闭包模式分为两种。函数模式闭包,对象模式闭包

闭包的作用:缓存数据,延长作用域链,同时也是缺点,函数中的变量不能及时释放

沙箱:模拟真实环境 ,在这个环境中模拟外面真实的环境,完成需求,效果与外面的真实的开发环境是一样的
第一种
(function(){}())
第二种
(function(){})()


//递归:递归就是函数中调用函数自己,递归一定要有结束条件,不然就会形成死循环
递归一般应用在遍历上,递归一般不轻易用,效率很低


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值