Сообщение от Ruslan_xDD
|
+
В массиве передавать один-два аргумента будет реально не удобно.
function fn(a, b, c) {
fn.apply(null, [a, c]);
//fn.call(null, a, c);
}
function fn2(a, b) {
alert(a + b);
}
fn(2, null, 3);
С call'ом на три символа меньше, да и работает он вроде быстрее, если не ошибаюсь.
|
function fn(a, ...args) {
fn.apply(null, args);
// ну или бюджетный способ
fn.apply(null, [].slice.call(arguments, 1));
}
function fn2(a, b) {
alert(a + b);
}
fn(2, null, 3);
Казалось бы разницы нет, но в случае добавления новых аргументов в fn2 нам не придётся добавлять их и в call, т.е. код с apply более короткий гибкий и удобный.
А скорость в таких вещах - это последнее на что нужно смотреть, т.к. разница там мизерна, и 99.99% что это не критическое место в вашем приложении и оптимизация этого места не будет даже заметна.