js中callee与caller用法简单介绍

js中callee与caller用法简单介绍:
这两个属性的使用算是比较频繁,本章节将会简要的做一下介绍,希望能够给需要的朋友带来或多或少的帮助。
一.caller属性:
此属性可以返回函数的调用者,为了更好的理解和记忆此函数,有必要从它的名称下手,caller的英文意思是"呼叫者"后者"调用者"。
下面看一段实例代码:

 

function func()
{ 
  if(func.caller) 
  { 
    console.log(func.caller.toString()); 
  } 
  else
  { 
    console.log("函数直接执行"); 
  } 
} 
function handleCaller() 
{ 
  func(); 
} 
handleCaller(); 
func(); 

以上代码中,第一个函数handleCaller()运行会输出func函数的调用也就是:

function handleCaller() 
{ 
  func(); 
}

 第二个函数func()运行会输出"函数直接执行",因为它的执行没有调用者。
二.callee属性:
此属性返回正在被执行的Function对象。它的英文意思是"被召者"。
它是argument对象的一个属性,它表示对函数对象本身的引用,这有利于匿名,下面先看一段代码实例:

 

function calleeLengthDemo(argOne,argTwo) 
{ 
  console.log(arguments.callee.toString()); 
  if(arguments.length==arguments.callee.length) 
  { 
    console.log("验证形参和实参长度正确!"); 
    return; 
  } 
  else
  { 
    console.log("实参长度:" + arguments.length); 
    console.log("形参长度:" + arguments.callee.length); 
  } 
} 
calleeLengthDemo(1);

 

 以上代码中,console.log(arguments.callee.toString())可以输出calleeLengthDemo()函数,大家要注意的是Function对象的length属性会返回函数的形参数量。console.log("实参长度:" + arguments.length)会输出传入函数的实参数量,console.log("形参长度:" + arguments.callee.length)输出形参数量。
相关阅读:
1.arguments可以参阅javascript的arguments对象一章节。
2.caller和callee可以参阅arguments.callee和caller的用法一章节。 

你可能感兴趣的:(call)