Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   О наследовании классов (https://javascript.ru/forum/misc/60218-o-nasledovanii-klassov.html)

abrahadabra 17.12.2015 18:07

О наследовании классов
 
Добрый вечер. Странное поведение вижу, не понимаю, как работает наследование.

Код таков:
class FieldMultiSelect extends FilterFieldBase {
    // некоторый код.
    // есть также и другие классы, наследованные от FilterFieldBase
}

FieldMultiSelect.propTypes = Object.assign(FieldMultiSelect.propTypes, {
    variants: React.PropTypes.object.isRequired
})


При этом у всех классов, унаследованных от FilterFieldBase, появилось свойство propTypes.variants: React.PropTypes.object.isRequired. Мне казалось, что такого быть не должно.

Что я неправильно понимаю?

vasa_c 18.12.2015 10:37

У унаследованных класов уже было свойство propTypes на данный момент?

abrahadabra 18.12.2015 11:53

Интересное уточнение насчёт данного момента.

Не знаю. Скорее нет. Как узнать точно?

В базовом классе свойство назначается так же:

class FilterFieldBase extends React.Component {
// всякие методы
}

FilterFieldBase.propTypes = {
    slug: React.PropTypes.string.isRequired,
    label: React.PropTypes.string,
    value: React.PropTypes.string
}


В других унаследованных нет ничего такого, только используется свойство базового класса.


Часовой пояс GMT +3, время: 06:18.