Компоненты в JavaScript

96
19 декабря 2021, 02:40

Всем доброго времени суток. При изучении столкнулся с такой вот задачей, реализация компонентов в js.Есть задача

function module() {
    class Component{
        constructor(){}
        onInit(){
        }
        onPropsChanges(changes){
        }
        render(){
        }
    }
    return {
        Component
    }
}

метод onPropsChages должен реализовывать такое условие

let result;
const mod = module()
 const component = new mod.Component();
 component.onPropsChanges = function(changes) { result = changes }
 component.props = { name: 'Stan' }
console.log(result) // ({ name: 'Stan' });
be possible to return a property object, but its changes should not have an effect on the original, 
() => {
    const mod = module()
    const component = new mod.Component();
    component.props = { name: 'Bob' }
    const props = component.props;
    props.name = 'John';
    props.address = 'Some address';
    console.log(component.props) //({ name: 'Bob' })
});

Толком понятной информации не нашел, может кто посоветует нормальный источник с примерами ну и если можно показать как этот пример реализовать.

READ ALSO
Некорректный вывод времени JavaScript

Некорректный вывод времени JavaScript

При выводе часов, минут и секунд , от 0 и до 10 данные выводятся одиночными цифрами , то есть 23:12:5 или 23:5:20, а нужно что бы было 23:12:05 или 23:05:20 Как...

97
Как объединить 2 (option) в фильтре чтобы выводилась нужные статьи из бд

Как объединить 2 (option) в фильтре чтобы выводилась нужные статьи из бд

Здравствуйте! Я мало что понимаю в mySQL, но так вышло, что я с ним связался

211
Безопасно ли хранить пароль и логин в js?

Безопасно ли хранить пароль и логин в js?

Есть общий 'login-layout' компонент который роутит другие компоненты :

83
Плавная смена картинки через атрибут src js

Плавная смена картинки через атрибут src js

Подскажите пожалуйста, как можно сделать плавную смену картинки через JsЕсть массив с ссылками на картинки, я его перебираю и каждые несколько...

80