
可以简单的理解为,谁调用了call就执行谁的方法,但是call()传入的参数决定的执行函数的this指向,传入 undefined null 作用域指为window
call方法跟apply方法并没有明显区别,只是传递参数的形式不一样。
call():一个一个的传递参数;
apply():以数组的形式传递。
参数数量/顺序确定就用call,参数数量/顺序不确定的话就用apply。
考虑可读性:参数数量不多就用call,参数数量比较多的话,把参数整合成数组,使用apply。参数集合已经是一个数组的情况,用apply,比如获取数组最大值/最小值。
call apply是改变指向并调用
bind是指向后等待调用
func1.call(func2)
在继承中:func1为父类 func2子类
