如果我有一個功能,例如:命名的Javascript功能參數VS參數對象
function doStuff(arg) {
arguments[0] = "4" + arg;
console.log(arg);
console.log.apply(null, arguments);
}
顯然doStuff("name")
打印 「4name」 兩次。
請問arg
和arguments[0]
指向相同的東西嗎?我可以交替使用它們嗎? JavaScript是否在做任何我應該知道的內容,並且有任何問題?
我知道參數處理所有傳遞的參數,而不僅僅是命名參數。我只關心它如何處理第一個(或第n個)參數。
[編輯]
我其實是以此爲
function name(arg) {
arguments[1] = args;
arguments[0] = "[INFO] " + args.callee + " arg: %o";
console.log.apply(this, arguments);
}
,並調用一個函數本身name(arguments)
。有趣的是args.callee打印出函數源代碼,而不是函數名。
將'arguments'自身作爲函數中的局部變量不被棄用。 – 2010-09-15 11:02:27
謝謝,如果沒有正確調用,函數會顯示奇怪的行爲。我可以解決這個問題。我主要使用與.apply和arguments.callee函數結合使用的參數,所以使用它很重要。 – Raynos 2010-09-15 11:05:12