Answer
t.me/js_testОтвет:
20 и NaN
Объяснение:
Обратите внимание, что diameter это обычная функция, в то время как perimeter это стрелочная функция.
У стрелочных функций значение this указывает на окружающую область видимости, в отличие от обычных функций! Это значит, что при вызове perimeter значение this у этой функции указывает не на объект shape, а на внешнюю область видимости (например, window).
У этого объекта нет ключа radius, поэтому возвращается undefined.
Код для проверки:
const shape = {
radius: 10,
diameter() {
return this.radius * 2;
},
perimeter: () => 2 * Math.PI * this.radius
};
shape.diameter();
shape.perimeter();