在Javascript中的被叫和主叫方的差异分析

在Javascript中的被叫和主叫方的差异分析
被叫
Callee是一个对象的属性,它是一个指向函数的指针参数的参数对象

首先,让我们写出一个有序函数:

函数陈(x){
如果(x=1){
返回1;
别的{ }
返回x *陈(X-1);
};
};
从这个函数可以看出,递归函数被使用。如果函数名被更改,它的函数名也会随着变化而改变。这是非常不方便,所以我们尝试与被叫。

函数陈(x){
如果(x=1){返回1;
其他{ }
返回x * arguments.callee(X-1);
};
};
让我们分析一下为什么我们这样写:根据呼叫者的定义,我们可以看到,被调用者的参数对象的一个属性,指向实参对象的函数,这个函数是陈(陈=争论。被叫方),这样的解释应该是可以理解的。

来电
调用者是一个函数对象的属性,它保存对调用当前函数的函数的引用(直接的父函数到当前函数)

让我们先举个例子。

函数A(){
(b);
};
函数B(){
警报(b.caller);
};
(a);结果是弹出函数a和内容。
让我们解释一下。首先,B的属性称为调用方。调用当前函数B的函数被称为A(即,父函数指向当前函数B),因此结果是弹出函数A(){ b();}

所以调用者和被调用者,你不能将两者结合在一起。

函数B(){
警报(b.caller);
};
从这个代码中,您可以看到B函数名是在B函数中调用的,所以当函数名称发生变化时,它非常不方便,我们需要在内部替换B。

在我们知道什么方法可以用来指向当前对象之前,让我们改变以下几点:

(函数A(){
(b);
});

函数B(){
警报(参数。被叫。来电);
};

从代码中,我们可以看到,我们有arguments.callee取代B的功能,所以我们解决问题。

以上是本文的全部内容,希望大家能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部