caller和callee的区别

caller返回一个函数的引用,这个函数调用了当前的函数;callee返回正在执行的函数本身的引用,它是arguments的一个属性。

caller
caller返回一个函数的引用,这个函数调用了当前的函数。
使用这个属性要注意:
1 这个属性只有当函数在执行时才有用
2 如果在javascript程序中,函数是由顶层调用的,则返回null

1  function a() {};
2  function b() {
3     a();
4 };
5 b();
6 //输出结果为 b的函数体
7      即:   function b() {
8                     a();
9               };            

callee
callee放回正在执行的函数本身的引用,它是arguments的一个属性
使用callee时要注意:
1 这个属性只有在函数执行时才有效
2 它有一个length属性,可以用来获得形参的个数,因此可以用来比较形参和实参个数是否一致,即比较arguments.length是否等于arguments.callee.length
3 它可以用来递归匿名函数。

1  function a() {
2                     console.log((arguments.callee));
3   }
4  a();
5 //返回结果为 a的函数主体
6 即:function a() {
7            console.log((arguments.callee));
8        }   
时间: 2024-12-21 18:37:37

caller和callee的区别的相关文章

Js中caller和callee的区别

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

caller和callee

我们先来看下caller. caller:返回一个对函数(该函数调用了当前函数)的引用. functionName.caller:functionName对象是所执行函数的名称. 说明 对于函数来说,caller 属性只有在函数执行时才有定义.如果函数是由顶层调用的,那么 caller 包含的就是 null .如果在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本. 下面的例子说明了 caller 属性的用法

javascript中caller和callee

最近学习javascript,碰到caller和callee的问题,去网上百度了很多.搜到的内容大同小益,整理总结了一下与大家分享. caller:返回一个对调用function函数的函数的引用(用法:function.caller) 说明:对于函数来说,caller属性只有在函数执行时才有定义.如果函数由顶层调用,caller则为null. var time = 3 //控制次数,去掉会一直在caller与handleCaller交替不断执行 function caller() { calle

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

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

caller.arguments.callee.eval

------------------------------------ 1.函数的调用方式,与this的指向问题,原型对象中的this 2.对象创建的几种方式! 3.str.replace 页面初始化话之后,初始化的页面DOM元素绑定事件,通过给实例对象设置一个方法. this.container =$(html) 将事件绑定在容器上由子元素触发,一个独立的功能就是一个容器 在绑定事件的的时候,将实例化对象先保存一下,这样在事件绑定的函数中就能使用这实例化对象了 this.container包

arguments arguments.caller arguments.callee call apply

一.Arguments该对象代表正在执行的函数和调用他的函数的参数.[function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字.n :选项.要传递给 Function 对象的从0开始的参数值索引.说明:Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并

【转】JavaScript 之arguments、caller 和 callee 介绍

1.前言 arguments, caller ,   callee 是什么? 在JavaScript 中有什么样的作用?本篇会对于此做一些基本介绍. 本文转载自:http://blog.csdn.net/oscar999/article/details/8511335 2. arguments arguments:  在函数调用时, 会自动在该函数内部生成一个名为 arguments的隐藏对象. 该对象类似于数组, 但又不是数组.可以使用[]操作符获取函数调用时传递的实参. <!--by osc

caller和callee属性

ECMAScript5规范了函数对象的属性:caller.除了Opera的早期版本不支持,其他浏览器都支持这个ECMAScript3并没有定义的属性. [IE,Firefox,Chrome,Safari的所有版本以及Opera9.6都支持caller属性] 这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null. functionName.caller 返回调用者. eg: 1 function outer(){ 2 inner(); 3 } 4 functi

caller和callee的使用

callee返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文 [function.]arguments.callee,可选项function参数是当前正在执行的Function对象名称 caller返回的是对一个函数的引用 functionName.caller,functionName 对象是所执行函数的名称 对于函数来说,caller 属性只有在函数执行时才有定义. 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 nu