DEV Community

Discussion on: Suggestions for using `...arguments` while working with functions in javascript.

Collapse
 
nektro profile image
Meghan (she/her)

That is a type of array destructuring and can be used to pass the elements of an array to a function.

const array = [ 4, 2 ];
const sixteen = Math.pow(...array);

is equivalent to

const sixteen = Math.pow(4, 2);
// or
const sixteen = Math.pow(array[0], array[1], /* ... */);
Thread Thread
 
gokatz profile image
Gokul Kathirvel

yeah, but in a component model, when handling functions, it becomes black box

passToAnotherFunc() {
  handleItSomewhere(...arguments);
}

now, I completely unaware of the argument list!

Thread Thread
 
nektro profile image
Meghan (she/her)

the value of arguments here is the value of the arguments passed to passToAnotherFunc. See the deprecated arguments object

Thread Thread
 
antjanus profile image
Antonin J. (they/them)

Wait, the arguments isn't deprecated, it's only arguments.caller property that's non-standard and deprecated.

Thread Thread
 
shalvah profile image
Shalvah • Edited

Combining Meghan's two earlier responses, a better way would be:

passToAnotherFunc(...args) {
  handleItSomewhere(...args);
}

But I feel it's unlikely you'd need to write this kind of code. Could you give a real-world example?

Thread Thread
 
nektro profile image
Meghan (she/her)

@antjanus it's not deprecated per-se but it is disabled in strict and module mode.

@shalvah +1 because instead of calling passToAnotherFunc to call handleItSomewhere, why not just call handleItSomewhere?

Thread Thread
 
antjanus profile image
Antonin J. (they/them)

I had no idea it was disabled in strict/module mode!