call、apply

ECMAScript规范给所有函数都定义了call()与apply()两个方法,我们可以将这两个方法看做是某个对象的方法,通过调用方法的形式来间接调用函数(比如,Object.prototype.toString)。

call和apply的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对它的引用,注意,在ECMAScript5的严格模式中,call和apply的第一个实参都会变为this的值,哪怕转入的实参是原始值甚至是null。

对于call来说,第一个调用上下文实参之后的所有实参就是要传入待调用函数的值,例如fn.call(this,1,2); apply方法和call类似,但传入的实参的形式和call有所不同,它的实参都放入一个数组当中:fn.apply(this,[1,2])。

猜你喜欢

转载自blog.csdn.net/qq_36379070/article/details/82528985
今日推荐