EssentialTypeScriptBook icon indicating copy to clipboard operation
EssentialTypeScriptBook copied to clipboard

bugs in {#spread-operator} section

Open marzelin opened this issue 9 years ago • 0 comments

function add(...values) {

... token used in a parameter list is called rest parameter


var values = Array.prototype.splice.call(arguments, [1])

should be

var values = Array.prototype.slice.call(arguments),

for following reasons:

  • arguments object shouldn't be modified (splice mutates an object, slice doesn't)
  • call expects a list of arguments, not an array (for arrays there's apply method)
  • add function should add every number given in arguments (slice(0) which equate to slice())

marzelin avatar Aug 28 '16 15:08 marzelin