上下文调用模式
上下文调用模式:指call,apply,bind三个方法,他们都能改变this指向.
1 call
作用1:调用函数 -- 和普通调用函数一样
fn.call();
作用2:改变函数的this指向;
第一个参数:通常是个对象,call使函数中this指向这个对象
剩余的参数:是函数的实参
fn.call(obj,2,3);
2 apply 和call的功能一模一样
第二个参数:将函数中需要的参数作为一个数组传入
fn.apply(obj,[3,5]);
3 bind
复制一个函数,并将这个复制出来的新函数的this指向其对象参数
var fn3 = fn.bind(obj); // 给bind传入一个对象参数,将原来函数中this变成了这个obj