Что выведет код? Запишите строки по порядку, по одной на строку.
В работе: Метод счёта передают колбэком в таблицу операций — и в строгом режиме он падает на this.owner.
Как проверяем
Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
Источник: на задачах Т‑Банка: объект счёта в веб-приложении. Условие пересказано своими словами.
Давали на собеседовании?
'use strict';const account = {owner: 'Анна',balance: 15000,show(currency) { return this.owner + ': ' + this.balance + ' ' + currency; },makeArrow() { return () => this.owner; },names() {return [1, 2].map(function () { return this === undefined ? 'нет this' : this.owner; });},namesArrow() {return [1, 2].map(() => this.owner);},};const other = { owner: 'Борис', balance: 300 };console.log(account.show.call(other, '₽'));console.log(account.show.apply(other, ['$', '€']));const arrow = account.makeArrow();console.log(arrow.call(other));console.log(account.names().join(','));console.log(account.namesArrow.call(other).join(','));const bound = account.show.bind(other, '₽');console.log(bound.call(account, '€'));const show = account.show;try { console.log(show('₽')); } catch (e) { console.log(e.constructor.name); }