您的位置:首页 > Web前端 > JavaScript

Js中caller和callee的区别(转载)

2018-04-05 13:29 369 查看

Js中caller和callee的区别

1 :caller 返回一个调用当前函数的引用 如果是由顶层window调用的话 则返回null(举个栗子哈 caller给你打电话的人  谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时候你才能知道打电话的人是谁 所以对于函数来说 只有caller在函数执行的时候才存在)      var callerTest = function() {           console.log(callerTest.caller) ;       } ;      function a() {           callerTest() ;        }     a() ;//输出function a() {callerTest();}     callerTest() ;//输出null  2 :callee 返回一个正在被执行函数的引用  (这里常用来递归匿名函数本身 但是在严格模式下不可行)     callee是arguments对象的一个成员 表示对函数对象本身的引用 它有个length属性(代表形参的长度)     var c = function(x,y) {             console.log(arguments.length,arguments.callee.length,arguments.callee)      } ;          c(1,2,3) ;//输出3 2 function(x,y) {console.log(arguments.length,arguments.callee.length,arguments.callee)} 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: