js中改变this的call()方法和apply()方法

154 阅读1分钟

image.png 1.call() call()方法是预定义的javascript方法,它可以用来调用所有者对象作为参数的方法。通过call(),它能够使用属于另外对象的方法。 image.png

image.png

image.png 2.apply() 通过apply()方法,接受两个参数,一个是函数运行的作用域(this),另一个是参数数组。语法:apply([thisObj,[,argArray]]);调用一个对象的一个方法,将另一个对象替换当前对象,如果argArray不是一个有效数组或不是arguments对象,那么会导致语法错误。

call()和apply()之间的区别: call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的新对象。 call()方法分别接受参数,apply()方法接受数组形式ide参数。如果要使用数据而不是参数列表,则apply()方法非常方便。

image.png