Зачем передавать null в myFunction.apply?

213
02 января 2020, 18:30

function myFunction(w, x, y, z) { 
  console.log(w + x + y + z); 
} 
 
var args = [1, 2, 3]; 
myFunction.apply(null, args.concat(4));

Answer 1

Метод apply вызывает функцию с явным указанием контекста (this), но так как внутри функции this нигде не используется, то результат будет одинаков для любого значения аргумента, в том числе и для null. К тому же вариант с null наиболее семантически правилен: мы как бы говорим, что нам ничего не требуется в качестве this.

Кстати, начиная с ES6, то же самое можно получить, используя так называемый spread-оператор, который записывается в виде многоточия (...):

function myFunction(w, x, y, z) { 
  console.log(w + x + y + z); 
} 
 
var args = [1, 2, 3]; 
myFunction(...args.concat(4));

READ ALSO
Выделение памяти под константы

Выделение памяти под константы

Есть код, работающий в браузере:

107
Как пользоваться оператором if в JS?

Как пользоваться оператором if в JS?

Создать глобальную переменную senseOfLife = 42создать функцию, которая будет принимать параметр otherSenseOfLife

112
Исправить ошибку js

Исправить ошибку js

есть такая форма

110
“Подхват” значения из input

“Подхват” значения из input

Не могу реализовать так, чтобы кнопка Купить брала значение из инпута, именно то которое прописано в поле, но когда смотрю код элемента, у этого...

118