На данный вопрос уже ответили:
Вызов func.call(context, a,b...)
– то же, что обычный вызов func(a, b...)
, но с явно указанным this(=context);
Метод apply работает так же как и метод call, с той разницей, что в него мы передаем не контекст + строковые аргументы, а контекст + массив
Я попробовал создать пример, который бы объяснил мне работу функции apply
var playList = {
title: "favorite songs"
}
var songs = [];
function makePlayList() {
console.log(this.title+":");
for (var i = 0; i < songs.length; i++) {
console.log((i+1)+": "+songs[i]);
}
}
songs.push("Muse - Resistance");
songs.push("Tame Impala - Let It Happen");
songs.push("MGMT – Alien Days");
makePlayList.apply(playList,songs);
Но затем я попробовал строку
makePlayList.apply(playList,songs);
И понял, что я не понял в чем же суть метода apply, помогите пожалуйста разъясните ситуацию на моем примере
Приветствую
someFunc.apply(ctx, [arg1, arg2, arg3]);
someFunc.call(ctx, arg1, arg2, arg3);
Вот и всё разница :)
В вашем примере ни call ни apply не нужны, так как ни аргументов у функции нет, ни контекст не используется. С приходом es6, манипуляции с this по большей части закончены.
В es6 массив в качестве аргументов можно передать через деструкцию:
const args = [arg1, arg2, arg3];
someFunc(...args);
// = someFunc(arg1, arg2, arg3)
Также внутри функции, у которой есть контекст, всегда можно выяснить аргументы запросив arguments
(даже если у функции явно аргументы не указаны)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть проект и в нём куча подключённых библиотек, например lodashИз этой библиотеки я использую пока только одну функцию _
Здравствуйте, кто нибудь работал с плагином TreantJS? Как в настройках плагина указать местоположения пользователя в дереве?
Доброго времени суток! Есть один вопрос к знатакамСделал я фиксированое меню с якорями, но есть проблема: Когда я скролю вниз, у меня к прозрачному...