apply和call方法的用法:
apply方法:
函数名.apply(对象,[参数1,参数2...]);
方法名字.apply(对象,[参数1,参数2...]);
call方法:
函数名.call(对象,参数1,参数2...);
方法名字.call(对象,参数1,参数2...);
第二个参数:函数中或者方法中的形参对应的实参
作用:改变this指向
bind方法:复制函数时,改变this指向,所以需要接收复制的结果,重新调用
在函数中使用:
var ff= 函数名.bind(对象,参数1,参数2...);
ff();
在对象中使用:
var ff = 实例对象.方法名.bind(对象,参数1,参数2...);
ff();
闭包:函数A中,有一个函数B(对象B),函数B(对象B)可以使用函数A中定义的变量和数据,此时就形成了闭包。
闭包的模式:①函数模式的闭包,②对象模式的闭包
闭包的作用:缓存数据,延长作用域链
闭包的优点和缺点:缓存数据
如果想要缓存数据,将数据放在外层函数和内层函数中间的位置
闭包的作用:缓存数据,延长作用域,---优点也是缺点,因为没有及时释放
沙箱:环境,黑盒,在一个虚拟的环境中模拟真实的环境,做实验,实验的结果和真实世界一样,但是不会影响真实世界
递归:函数中调用自己本身,此时就是递归,递归一定要有结束的条件