JS В чём разница между call и apply?

например у нас есть следующая функция записанная в переменную:

var func = () => console.log("My Func in action!");

в дальнейшем у нас есть несколько вариантов вызова записанной в переменную функции из которых, это вызвать через apply и сall. Видимых отличий при их вызове я не наблюдаю., в чём состоит разница между вызовом через call и apply? Может у какого-то варианта выше производительность? Когда какой из вариантов нужно использовать?

В таком контексте разницу небудет видно. Для её понимания можно обратится к MDN, который скажет следующее:

call MDN: Function.prototype.call() - JavaScript | MDN

Вызывает функцию с заданным значением и аргументы, предоставленные индивидуально.

fun.call(thisArg[, arg1[, arg2[, ...]]])

apply MDN: Function.prototype.apply() - JavaScript | MDN

Вызывает функцию с заданным значением и аргументы, предоставляемые как массив.

fun.apply(thisArg[, argsArray])

Также из этого можно сказать, что:

  • call почти идентичен тому, как вы обычно вызываете функцию, за исключением того, что в начале списка параметров есть дополнительный параметр, в который вы помещаете ссылку для объекта this.

  • apply, как и call, также имеет первый параметр как объект this, но ожидается, что второй параметр будет массивом. Этот массив используется для предоставления всех аргументов, ожидаемых вызываемой функцией.