аналог bind для IE8- и старых версий других браузеров. Но лучше наверно использовать полифилл -
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ну или использовать библиотеку - es5-shim.js
про call, apply и bind - можно здесь почитать например
https://getinstance.info/articles/javascript/call-...
Метод bind() используется преимущественно для того, чтобы вызвать функцию с явным указанием значения this. Другими словами, bind() позволяет нам указать, ссылка на какой объект будет значением this, когда функция будет вызвана, и вызвать эту функцию.
function bind( method, context) {
//удаляем первые два аргумента - method,context
var args = Array.prototype.slice.call(arguments,2);
return function () {
//те аргументы которые добавлены в method через bind остаются + добавляем те
// которые при вызове функции добавлены
var a = args.concat(Array.prototype.slice.call(arguments,0));
//возвращаем функцию method, где контекст вызова(this) - context
return method.apply(context, a);
}
}
function getThisAndParams(...a){
console.log(this);
a.forEach(function(el){
console.log(el);
});
}
var arr = [2,3,6,8];
var method1 = bind(getThisAndParams,arr);
method1('hello','world','Vasya'); //выведет массив arr и "Hello" "world" "Vasya"
var method2 = bind(getThisAndParams,arr,'Yo yo yo');
method2('hello','world','Vasya'); //выведет массив arr и 'Yo yo yo' 'hello' 'world' 'Vasya'
Зачем на практике использовать такое - вам лучше знать, вы же нашли эту функцию.
Но на мой взгляд все эти танцы с бубнами устарели с появлением стрелочных функций
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Но так как вы судя по всему не понимаете что такое контекст вызова функции то ловите
https://www.youtube.com/watch?v=LM0tW2MZJZ4