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
Ant The Developer

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
Ant The Developer

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