В чем разница между методами `call`(), `apply`() и `bind`() в JavaScript, и когда использовать каждый из них?
Методы call(), apply() и bind() в JavaScript используются для управления контекстом вызова функции:
call()- вызывает функцию немедленно, с указанным значениемthisи переданными аргументами по отдельности.apply()- вызывает функцию немедленно, с указанным значениемthisи переданными аргументами в виде массива.bind()возвращает новую функцию с указанным значениемthisи фиксированными аргументами (если они переданы), в отличие от других методов функция не вызывается сразу и может быть вызвана в дальнейшем уже с изменённым контекстом.