// 学习: call apply bind 三个方法 // 这个三个方法都是Function.prototype原型上的 // 所有函数都可以去使用call apply bind方法 console.log(Function.prototype)
//1.除了使用()来调用函数之外,还可以使用call来调用 function fn(){ console.log(123); } fn(); fn.call();//fn可以通过原型链找到call
//2.call除了可以调用函数,call第一个参数可以用来修改this指向的 function fn(){ console.log(456) console.log(this) } fn(); // 456 window fn.call({}); //456 {}
//3.call的第一个参数是用来修改this指向的,除了第一个参数,其它所有的参数都是用来做函数的实参的 // 所以call的参数可以有若干个 function fn(n1,n2){ console.log(this); console.log(n1+n2); //所有的实参在arguments里 console.log(arguments); } fn.call([],100,200,300,400)
小结:
上下文调用模式 ==> 可以自己去修改this指向
call apply bind 三个方法
call方法
作用:
//1.可以调用函数 //2.call的第一个参数用来修改函数内的this指向 //3.call除了第一个参数外,其他所有参数都是用来给函数传递实参
原文:https://www.cnblogs.com/DuYueJin/p/12714720.html