今晚说一下改变this指向的指向函数。
一.改变函数内部this指针的指向函数
- 通过apply和call改变函数的this指向,他们两个函数的第一个参数都是一样的表示要改变指向的那个对象;第二个是传入的参数,apply是数组,而call则是arg1,arg2…这种形式。
- 通过bind改变this作用域会返回一个新的函数(我理解的是bind不改变原函数,再var一个新的函数拿来用。),这个函数不会马上执行。call 是把第二个及以后的参数作为 func 方法的实参传进去,而 func1 方法的实参实则是在 bind 中参数的基础上再往后排。
function func(a, b, c) {
console.log(a, b, c);
}
var func1 = func.bind(null,'linxin');//重新命名
func('A', 'B', 'C'); // A B C
//参数从bind的第二个参数插入到新函数fun1的第一个参数之前
func1('A', 'B', 'C'); // linxin A B
func1('B', 'C'); // linxin B C
func.