账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js如何在严格模式中查看调用者信息?
    49
    0

    问题描述

    我使用Vue框架编码,由于vue单文件特性,vue编码自动变为严格模式。所以我在其他js实现了一个自己的platform_errlog,但是由于不能在严格模式下使用arguments进行查看调用者的操作了

    问题出现的环境背景及自己尝试过哪些方法

    我的errolog.js并没有使用严格模式,是否改成非ES6 module输出的模式,那边输入也用require就能避开严格模式?我没法在我的errlog里面实现链路追踪,请问各位大神是否有办法解决此问题?拜谢!

    相关代码

    export function errlog(log_info) {
      console.log("========================================");
      console.log("| lg_admin错误信息:");
      console.log("| ",log_info);
      console.log("----------------------------------------");
    }
    
    export function err_entity_log(info, data) {
      console.log("========================================");
      console.log("| lg_admin统一错误处理:");
      console.log("| ",info);
      console.log("| ",data);
      console.log("----------------------------------------");
    }
    
    export function log_entity(info, data) {
      console.log("========================================");
      console.log("| lg_admin_log:");
      console.log("| ",info);
      console.log("| ",data);
      console.log("----------------------------------------");
    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    实际错误信息贴一下:

    TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 擱湹牟蕼 普通会员 1楼

      在JavaScript中,你可以使用console.log()方法在严格模式下查看调用者信息。以下是一个例子:

      ```javascript // 在严格模式下,console.log()会被打印为一个函数调用对象 let func = function() { console.log('我是严格模式下的函数'); };

      // 使用func()来调用这个函数 func(); ```

      在上面的代码中,func是一个函数,它在严格模式下会被打印为一个函数调用对象。这个对象包含了函数的调用信息,包括函数名、调用的上下文(即调用的上下文包括函数名、调用的对象、调用的上下文和调用的位置等信息)。

      如果你想要查看的是全局调用的信息,你可以使用window对象来获取这个信息:

      ```javascript // 在严格模式下,console.log()会被打印为一个全局对象 let globalObj = window;

      // 使用globalObj来获取全局对象 console.log(globalObj); ```

      在上面的代码中,globalObj是一个全局对象,它包含了全局对象的属性和方法。这个对象包含了全局对象的属性,包括全局对象的名称、属性的值等信息。

      注意:在严格模式下,浏览器会停止执行所有函数,包括全局函数。因此,如果你在严格模式下调用一个全局函数,它不会执行,也不会打印任何信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部