Sobes.tech
Back to tasks
Junior — Senior
29

Что выведет консоль при вызове методов объекта в JavaScript

Companies where asked:

Альфа-БанкАльфа-Банк
Get help with live coding in real time with Sobes Copilot
Task condition

Нужно предсказать, какие значения появятся в консоли после выполнения каждой строки кода ниже. Обратите внимание на различия между обычными функциями и стрелочными, а также на влияние bind и потерю контекста.

var person = {
    firstName: 'Bill',
    lastName: 'Ivanov',
    sayName: function() {
        console.log(this.firstName);
    },
    sayLastName: () => {
        console.log(this.lastName);
    }
};

person.sayName(); // ?

var unboundSayName = person.sayName;

unboundSayName(); // ?

person.sayName.bind({ firstName: 'Boris' })(); // ?

person.sayName(); // ?
person.sayLastName(); // ?

person.sayName.bind({ firstName: 'Boris' }).bind({ firstName: 'Tom' })(); // ?
person.sayLastName.bind({ lastName: 'Petrov' })(); // ?