通常在Javascript中,如果您从函数内引用“魔术”arguments
变量,它将包含传递给该函数的所有参数。尽管如此,在Chrome开发人员工具(在Linux上),这并没有发生;如果您:有没有办法让Chrome在`arguments`中包含未声明的参数?
- 添加
debugger
语句一些功能没有任何声明的参数 - 做些事情来触发与一个参数,函数
- 当Chrome浏览器上的
debugger
线停顿,从检查arguments
控制台。
您会看到arguments
为空。现在,只需在函数中声明参数就可以很容易地解决这个问题。换句话说,如果你这样做:
function(a,b,c) {
debugger;
}
代替:
function() {
debugger;
}
arguments
将有参数(或至少前三)。
但是,这真的不应该是必要的,这导致我的问题:是否有任何设置我可以改变,或者有什么我可以做的,以解决这种行为,只是让Chrome把每次传入参与到arguments
,而不只是宣布的?
可能是'debugger' statemant打破了你的currient范围。无论如何,奇怪。 – rekire 2013-04-03 18:55:02
这是非常可能的:如果我'console.log(arguments)'而不是使用'debugger',那么会记录正确的参数(即使它们未声明),所以这看起来特定于'调试器'。 – machineghost 2013-04-03 20:16:17
你也可以说var keep = arguments; – 2013-06-12 19:59:19