Perché viene visualizzato un errore quando si utilizza arguments
in questo modo?L'oggetto non ha il metodo 'reduce' errore quando si usano gli argomenti in node.js?
function sum(){
return arguments.reduce(function(a,b){
console.log(a+b)
return a+b;
},0);
}
sum(1,2,3,4);
errore:
/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
Questo è dal signor Crockford di JS lectures.
Qual è la differenza tra un array e un oggetto "array"? –
@AndersonGreen One eredita il suo prototipo da 'Array', inclusi elementi come' reduce'. Gli altri no, ma hanno ancora indici numerici, che li rendono simili agli array. –
@AndersonGreen: Controlla la mia modifica, ci sono alcune informazioni utili su MDN, scorri fino a trovare l'intestazione "array-like". – elclanrs