通常在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