美文网首页
callee和caller

callee和caller

作者: David三人行 | 来源:发表于2017-04-27 08:45 被阅读65次

callee和caller这两个属性在命名上非常相似,总是后搞混,现在梳理一下。
callee是arguments的属性,返回当前函数的引用。所以常用来做递归。

function factorial(num){
    if(num>1){
        return num*arguments.callee(num-1)
    }else{
        return 1
    }
}

caller用于返回调用当前函数的函数。听起来有点拗口,其实就是返回当前函数栈的上一层。

function a(){
    console.log(a.caller)
}
function b(){
  a()
}
b()//b

即使是匿名函数调用也会返回

(function(){
  a()
})

但是直接访问、对象访问均会返回null。

另外,箭头函数不支持caller和callee,严格模式下为了安全也不支持,所以在开发中应该避免使用。

相关文章

  • 常用但易忘的一些知识点

    递归调用arguments.callee(); caller和callee:arguments.callee返回当...

  • callee和caller

    callee 属于arguments的一个属性,是一个指针,指向拥有arguments对象的函数,在函数内部,ar...

  • callee和caller

    callee和caller这两个属性在命名上非常相似,总是后搞混,现在梳理一下。callee是arguments的...

  • callee和caller

    arguments是个类数组对象,用来保存传入函数中的所有参数,也就是实参对象 arguments对象有个属性叫c...

  • caller和callee

    关键词caller :返回一个函数的引用,这个函数调用了当前的函数callee:返回正在执行的函数本身的引用,它是...

  • caller和callee

    这两天在查阅资料的时候发现了一些之前没见过的小内容 1.caller 这个方法一般来说用的很少,就简单的介绍一下 ...

  • caller和callee

    caller返回调用当前函数的引用,如果是函数自身调用,则返回null,callee返回正在被执行函数的引用,即返...

  • vue cli3 babel7 配置 移除严格模式插件

    报错信息: Uncaught TypeError: 'caller', 'callee', and 'argume...

  • JavaScript中的callee, caller, call

    2018/08/29 21:39 callee, caller, call 1. callee 在函数内部,有两个...

  • JavaScript函数_05 caller | callee

    caller:调用函数的函数 注意点:在全局作用域中调用,指向的是null callee:函数自身 callee ...

网友评论

      本文标题:callee和caller

      本文链接:https://www.haomeiwen.com/subject/oijrzttx.html