有没有办法让Chrome在`arguments`中包含未声明的参数?

时间:2013-04-03 18:49:19

标签: google-chrome arguments google-chrome-devtools

通常在Javascript中,如果从函数内部引用“magic”arguments变量,它将包含传递给函数的所有参数。但是,在Chrome开发人员工具(Linux上)中,这种情况并未发生;如果你:

  1. 向某个没有任何声明参数的函数添加debugger语句
  2. 使用参数
  3. 执行某些操作来触发该功能
  4. 当Chrome在debugger行暂停时,请从控制台中检查arguments
  5. 您会看到arguments为空。现在,通过在函数上声明参数,可以很容易地修复它;换句话说,如果你这样做:

    function(a,b,c) {
        debugger;
    }
    

    而不是:

    function() {
        debugger;
    }
    

    arguments 拥有参数(或至少是前三个参数)。

    然而,这真的不应该是必要的,这引出了我的问题:是否有任何我可以改变的设置,或者我还能做些什么来解决这个问题并让Chrome放入每个传入的参数进入arguments,而不只是声明的那些?

1 个答案:

答案 0 :(得分:1)

最近在V8 JavaScript引擎中重做了这个。很快它将进入Chrome代码库,最终将进入稳定版本(可能是28. 。*?)。