调用方法,替换对象。
- 每个函数都包含两个非继承而来的方法:call()方法和apply()方法。
2.call()、apply()都是用来重定义 this 这个对象的
3.相同点:这两个方法的作用是一样的。
都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。
call的使用
这两个方法就是用来调用函数的。语法如下:
call(对象,[形参, 形参])
一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。
apply的使用
apply(对象,[array(形参数组)])
call和apply的区别
从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。而不同之处在于传递的参数,apply最多只能有两个参数——新this对象和一个数组argArray,如果arg不是数组则会报错TypeError;
call则可以传递多个参数,第一个参数和apply一样,是用来替换的对象,后边是参数列表。