Сходство заключается в том, что и .call
, и .apply
используются для вызова функций, а также первый параметр будет использоваться как значение this
внутри функции. А разница в том, что .call
в качестве следующих аргументов принимает аргументы, разделенные запятыми, в то время как .apply
в качестве следующих аргументов принимает массив аргументов.
function add(a, b) {
return a + b;
}
console.log(add.call(null, 1, 2)); // 3
console.log(add.apply(null, [1, 2])); // 3