訪問到的論點我有兩個簡單的循環功能,其處理函數的參數:JS:奇怪的結果,而通過鑰匙
var getArgs=function(){
var keys = Object.keys(arguments);
for(var argKey in arguments){
console.log({argKey:argKey, argument:arguments[argKey]});
}
keys.forEach(function(argKey){
console.log({argKey:argKey, argument:arguments[argKey]});
});
};
...和它的呼叫:
getArgs(5,3,2,11,15,7,-25);
看來,他們也是這樣做的,所以輸出也應該是一樣的,但事實並非如此。 第一個工作相當可預測。輸出是:
{ argKey: '0', argument: 5 }
{ argKey: '1', argument: 3 }
{ argKey: '2', argument: 2 }
{ argKey: '3', argument: 11 }
{ argKey: '4', argument: 15 }
{ argKey: '5', argument: 7 }
{ argKey: '6', argument: -25 }
但第二個表現出人意料:
{ argKey: '0', argument: '0' }
{ argKey: '1', argument: 1 }
{ argKey: '2', argument: [ '0', '1', '2', '3', '4', '5', '6' ] }
{ argKey: '3', argument: undefined }
{ argKey: '4', argument: undefined }
{ argKey: '5', argument: undefined }
{ argKey: '6', argument: undefined }
爲什麼?
你們都吹我的腦海裏。很好的問題和答案! – Observer
謝謝,優秀的回答,很乾淨。 – srgg6701