1。来电

返回调用当前函数的函数的引用。

functionname.caller

该函数名对象执行的函数名称。

解释

对于函数,调用者属性只在函数执行时定义。如果函数被Javascript程序顶层调用,调用者就包含null。

下面的示例演示调用方属性的用法:

复制代码代码如下所示:
功能callerdemo(){
如果(参数调用方){
创建一个callerdemo.caller.tostring();
警报(a);
{人}
警报(这是一个top函数);
}
}
功能handlecaller(){
CallerDemo();
}
HandleCaller();
功能calleedemo(){
警报(参数。被叫方);
}
CalleeDemo();


二,被叫

返回正在执行的函数对象,即指定函数对象的主体。

{ } arguments.callee功能。
可选的函数参数是当前正在执行的函数对象的名称。

解释

callee属性的初始值是正在执行的函数对象。

callee属性的参数对象的一个成员。它指的是对函数对象本身的引用,这有助于匿名函数的递归函数或函数的封装。例如,递归计算的1个自然数N的例子是递归的。此属性仅当相关函数正在执行,也要注意,被调用方的长度属性重要,有时是用来验证或是better.arguments.length是一个参数的长度,和arguments.callee.length是参数的长度,从而判断参数的长度是符合参数的长度时,称为。

样品

复制代码代码如下所示:
/ /被叫方可以打印自己的
功能calleedemo(){
警报(参数。被叫方);
}
验证参数
功能calleelengthdemo(arg1,arg2){
如果(参数。长度= =争论。被叫。长度){
Window.alert(验证参数的参数和长度正确!;
返回;
{人}
警报(参数长度:+参数。长度);
警报(长度的参数:+论据。被叫。长度);
}
}
递归计算
var =函数(n){
如果(n=0)
返回1;
其他的
返回narguments.callee(n - 1)
}
更一般的递归函数:

复制代码代码如下所示:

var =函数(n){
如果(1 = n)返回1;
否则返回n和(n-1);

调用时调用:警报(和(100));

内部函数包含对和本身的引用,函数名只是一个变量名,函数内部的调用和等价于调用。
一个全局变量,而不能调用本身就是一个很好的体现,是一个更好的方式来使用方。