在Javascript中调用和应用方法
调用和应用的第一个引用是调用函数的父对象,即调用上下文,并通过函数中的这个函数获取对它的引用。例如,如果您想用对象O的方法调用函数f,可以使用调用并应用如下方法:
复制代码代码如下所示:
f.call(O);
f.apply(O);
可以通过以下代码理解:
复制代码代码如下所示:
用于临时O
(每天早晨); / /电话本暂行办法
删除O. M;这个方法将删除临时的
让我们举个例子。
复制代码代码如下所示:
功能testfun(){
返回这个;
}
var:a:1,b:2 };
testfun.call(O); / / 3
testfun.apply(O); / / 3
上述代码的结果是3,可理解为返回O + O.B.
考虑一个问题,如果调用和应用方法的第一个实际参数是null或未定义的,该怎么办请看下面的例子中的一个:
复制代码代码如下所示:
var a=10,b=20;
功能testfun(){
返回这个;
}
testfun.call();
TestFun.apply();
以上代码的结果都是30,这是因为如果传入null或未定义,调用和应用的第一个真正参数将被全局对象替换。
这两种方法的区别是什么
对于调用方法,上下文参数第一次调用之后的所有参数都是将调用的值传递给要调用的函数。例如,函数f是以对象O的形式调用的,两个参数传递进来,您可以使用以下代码:
复制代码代码如下所示:
f.call(O,1, 2);
应用程序方法将第一个参数之后的所有参数放入数组中,
复制代码代码如下所示:
f.apply(O,{ 1, 2 });
让我们举个例子。
复制代码代码如下所示:
功能testfun(x,y){
返回这个;
}
var:a:1,b:2 };
testfun.call(O,10, 20);
testfun.apply(O,{ 10, 20 });
上述代码的执行结果为33,可以理解为返回O 20 + 10。