Задать вопрос
Kentavr16
@Kentavr16
long cold winter

Почему в примере дублируются строки инициализации полей класса?

Вот пример из книги которую сейчас изучаю -
class Product {
 constructor(public name: string, public unitPrice:
 number) {
 this.name = name;
 this.unitPrice = unitPrice;
 }
 getDiscountedPrice(discount: number): number {
 return this.unitPrice - discount;
 }
}


Зачем в теле конструктора класса
this.name = name;
 this.unitPrice = unitPrice;
?

Ведь в книге явно указывают что модификаторы private/public сами создадут соответствующее поле в классе. В тайпскрипт-песочнице этот код переводят в джаваскрипт как
"use strict";
class Product {
    constructor(name, unitPrice) {
        this.name = name;
        this.unitPrice = unitPrice;
        this.name = name;
        this.unitPrice = unitPrice;
    }
    getDiscountedPrice(discount) {
        return this.unitPrice - discount;
    }
}


Вроде как смысла в дублировании никакого. Но книга вроде свежая, поэтому хочу убедиться что сакрального смысла в таком действии нет.
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Kentavr16
@Kentavr16 Автор вопроса
long cold winter
Практического применения/причины такого синтаксиса не нашел. Скорее всего это просто "я так вижу" автора книги.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы