函数的call()方法和apply()方法
Posted 蔡春保
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的call()方法和apply()方法相关的知识,希望对你有一定的参考价值。
阅读各种框架的源码apply和call方法肯定经常看到,好好理解一下概念至关重要。
javascript中的函数也是对象,和其他JavaScript对象没什么两样,函数对象也可以包含方法。其中的call()方法和apply()方法可以间接调用函数。两个方法都允许显式指定调用所需的this值,也就是说,任何函数都可以作为任何对象的方法来调用,哪怕这个函数不是那个对象的方法。
两个方法都可以指定调用的实参。call()方法使用它自有的实参列表作为函数的实参,apply()方法则要求以数组的形式传入参数。
call()方法和apply()方法的第一个实参是要调用函数的母对象,它是强调上下文,在函数体内通过this来获得对它的引用。
function a1(i,j){ var a = 1; console.log(a); console.log(i,j); } function b1(i,j){ var b = 2; console.log(i,j); this(i,j); } b1.call(a1,111,222); // call()方法调用 // b1.apply(a1,[111,222]); apply()方法调用,一样的,只是传参形式不一样
以上是关于函数的call()方法和apply()方法的主要内容,如果未能解决你的问题,请参考以下文章