JS arguments/caller/callee

arguments :

[function.]arguments[n] 参数function :选项。当前正在执行的 Function 对象的名字。 
n :选项, 要传递给 Function 对象的从0开始的参数值索引。 
说明Arguments :是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments 对象。arguments 对象只有函数开始时才可用。下边例子详细说明了这些性质://arguments 对象的用法。

caller

返回一个对函数的引用,该函数调用了当前函数。
   functionName.caller 
   functionName 对象是所执行函数的名称。
  说明
       对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null .

callee :

返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。

[function.]arguments.callee
          可选项 function 参数是当前正在执行的 Function 对象的名称。

说明 : callee 属性的初始值就是正被执行的 Function 对象。

callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性

function test(a,b,c)
{
      alert(test.arguments.length+":"+test.length);
 }

 function aaa(){
      test(1,2,3,4,5);
 }

  aaa();

结果为:"5:3"

时间: 2024-12-20 13:56:06

JS arguments/caller/callee的相关文章

js中arguments,caller,callee,apply的用法小结

<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <style type="text/css"> *{padding: 0;margin: 0;} #img{position: absolute;} </style> </head> <body> <img id="img" src=&quo

arguments,caller,callee之理解

arguments对象代表正在执行的函数和调用它的函数的参数,arguments是一个不是数组但类似 数组的对象,它具有同数组一样的访问性质及方式,可以由arguments[n]来访问对应单个参数的值, 并有length属性,需要注意的是arguments对象存储的是实际传递给函数的参数,只有在函数开始时才可用. caller返回对一个函数的引用,该函数调用当前函数.如果函数由顶层调用,caller包含的值为null. callee返回正在被执行的Funciton对象,也就是被指定的Functi

arguments.callee arguments.caller call aply

转载自小小程序员 JavaScript中的arguments,callee,caller,call,appy 看了网上的一篇文章<<全面理解javascript的caller,callee,call,apply概念>>,记下代码,备用 <script language="JavaScript">/* * 演示arguments的用法,如何获取实参数和形数数 */function argTest(a,b,c,d){    var numargs = a

js 方法中内部属性arguments的callee属性

var factorial=function(num){ if(num<=1) return 1; else // return num*factorial(num-1);//递归时,在方法内部通过该方法的方法名来调用自己是非常危险的,因为js可以直接修改方法变脸的值 return num*arguments.callee(num-1);//递归时,应该使用方法内部属性arguments的callee属性,它保存了当前方法的地址(指针) } var another=factorial; fact

js arguments对象

在javascript中,不需要明确指出参数名,就能访问它们.如: function hi(){if(arguments[0]=="andy"){     return;}alert(arguments[0]);} 用arguments[0]可以访问第一个参数,如此类推. 利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下: function hi(){if(arguments.length==1){    alert(argume

js arguments.callee &amp; caller的用法及区别

在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数; 而函数对象的另一个属性:caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null. 1 <script type="text/javascript"> 2 function inner(){ 3 alert(arguments.callee); //指向拥有这个arguments对象的函数,即inner() 4 alert

js apply/call/caller/callee/bind使用方法与区别分析

一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). Js代码 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明 call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对

js经验点滴js apply/call/caller/callee/bind使用方法与区别分析

一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). Js代码 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明 call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对

Js中caller和callee的区别

1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人  谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时候你才能知道打电话的人是谁 所以对于函数来说 只有caller在函数执行的时候才存在) var callerTest = function() { console.log(callerTest.caller) ; } ; function a() { callerTest() ; } a() ;//