DEV Community

Discussion on: Javascript call and apply 101

Collapse
jakewhelan profile image
Jake Whelan • Edited

It just depends on the structure of your arguments.

call is useful for manually calling a function where you have explicitly defined arguments.

const a = 'bar'
const b = 'baz'

foo.call({}, a, b)

But sometimes you have an array of arguments and you want to programmatically call a function with them, that's where apply is useful.

const args = ['bar', 'baz']

foo.apply({}, args)

That said, with the advent of the spread/rest operator (...), apply is redundant.

const args = ['bar', 'baz']

// notice this is using call, not apply!
foo.call({}, ...args)