dom1n1k
@dom1n1k

Кто-нибудь пользовался в реальной жизни thisArg?

Кто-то знает, кто-то не знает, но у методов Array.forEach, map, reduce, filter и так далее - есть опциональный параметр thisArg, который позволяет передать в функцию свой контекст.
Например, описание forEach: https://developer.mozilla.org/en-US/docs/Web/JavaS...

Я не спрашиваю зачем это нужно - я понимаю, как это работает и наверное даже могу теоретически представить себе пример использования. Но он будет абсолютно надуманный и искусственный. А вот практически - не могу. Ни единого раза не пригодилось мне это в реальной жизни. В отличие от методов call/apply/bind, которые решают сходную задачу и применяются достаточно регулярно.

Кто-то юзал этот thisArg в реальной жизни? При каких обстоятельствах?
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 2
neuotq
@neuotq
Прокрастинация
Все ради "магии" JavaScript.
В ES6 мы имеем такую красоту
addressParts.map(str => str.trim());
А так, подобная магия будет выглядеть так:
addressParts.map(Function.prototype.call, String.prototype.trim);

Вместо
addressParts.map(function(str) { return String.prototype.trim.apply(str); });

Короче говоря рациональное зерно есть, если знаешь эту фишку. Но конечнчо же ES6 вариант намного лучше читается.
PS см blog.bloomca.me/2017/11/08/the-most-clever-line-of... https://stackoverflow.com/questions/19293997/javas...
Ответ написан
Наверное по той же причине, когда используют bind, но это редкие случаи. Мне, к примеру, было полезным передавать в функцию (обычную, через bind) определенный контекст, и то наверное потому, что было лень менять this на имя параметра, которое я мог передать взамен.

Может thisArg придумали еще до того, как появились стрелочные функции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы