爲什麼使用arguments
這樣的錯誤?在node.js中使用參數時,對象沒有方法「減少」錯誤?
function sum(){
return arguments.reduce(function(a,b){
console.log(a+b)
return a+b;
},0);
}
sum(1,2,3,4);
錯誤:
/Users/bob/Documents/Code/Node/hello.js:2
return arguments.reduce(function(a,b){
^
TypeError: Object #<Object> has no method 'reduce'
at sum (/Users/bob/Documents/Code/Node/hello.js:2:19)
at Object.<anonymous> (/Users/bob/Documents/Code/Node/hello.js:8:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:903:3
這是Crockford的先生JS lectures。
數組和「類似數組」的對象之間有什麼區別? –
@AndersonGreen One從'Array'繼承它的原型,包括像'reduce'這樣的好東西。其他人沒有,但仍然有數字指標,這使得它們與陣列相似。 –
@AndersonGreen:檢查我的編輯,在MDN上有一些有用的信息,滾動直到找到「類似數組」的標題。 – elclanrs