• Как реализовать bind, чтобы можно было повторно привязать контекст?

    @Icexes Автор вопроса
    Сергей Сергей, да, вы правы. задача состоит в следующем: предположим, есть следующий метод байнд:
    const bind = function(func, ctx) {
        return function() {
            return func.call(ctx);
        }
    }
    
    const obj1 = {
        a: 1
    }
    
    const obj2 = {
        b: 2
    }
    
    function foo() {
        console.log(this);
    }
    
    let boundFoo = bind(foo, obj1);
    
    boundFoo = bind(boundFoo, obj2);
    
    boundFoo();

    Если вызвать boundFoo(), то по итогу будет использован obj1, что в данном случае некорректно. Думал в методе проверять анонимная функция передается или нет, и в случае если нет, то в прототип записывать исходный код функции, а если да - то вызывать из прототипа ф-ю foo, но думаю это не очень хороший способ.