zoukankan      html  css  js  c++  java
  • Js中caller和callee的区别

    1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回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)} 

  • 相关阅读:
    Sequelize框架:
    sequelize 测试
    sequelize 用于PostgreSQL,MySQL,SQLite和MSSQL的Node.js / io.js ORM
    node Util 模块
    bluebird的安装配置
    bluebird 开发文档链接
    Node.js的__dirname,__filename,process.cwd(),./的含义
    editplus
    luogu3377 【模板】左偏树(可并堆)
    cf936c Lock Puzzle
  • 原文地址:https://www.cnblogs.com/liujianshe1990-/p/8553675.html
Copyright © 2011-2022 走看看