при вызове f.defer this = f , по сути метод дефер, является методом для всех функций, так как ты его добапвил в прототип, использует this для получения функции и работы с ней, ну а дальше думаю все очевидно
ILoveYAnny: obj [1] == diff [1] если ложь, то произошло изменение, записывать в объект все данные на основной уровень все форме ключ как название, цвет как значение
While синхронно вещь, settimeout выполняет задачу асинхронно вне основного потока, соединять их нельзя, я без понятия, кто вас толкнул к такому нелепому решению, но советую более критично отнестись к такому преподавателю. MihailDonskoy: