Bind

this функции можно изменить.

Присвоим функции this объекта:

function.bind(object)


const n = 'n in window';

function foo () {
    return this.n;
}
  
const obj = {
    n: 'n in obj'
}
    
const bindedFoo = foo.bind(obj);

console.log(bindedFoo())   // n in obj
        

Если в качестве объекта передать null, то для функции в качестве this будет window

Запоминание функцией части аргументов (каррирование)


function setLocalTime(time, local) {
    return time + local;
}
    
const getLocalTime = setLocalTime.bind(null, 2);

typeof getLocalTime;   // function
getLocalTime(10);      // 12            
        

Bind используется в асинхронных callback функциях, и мы еще столкнемся с ними позже.

back