Ответы пользователя по тегу ООП
  • Как организовать наследование свойств объектом другого объекта с возможностью одновременного изменения значения у обоих (JavaScript)?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Вам нужно смотреть в сторону inheritance patterns, если я правильно понял вопрос. Они позволяют задать один объект с прототипом и затем создавать другие объекты с прототипами, расширяясь атрибутами и прототипом первого.
    Ответ написан
    Комментировать
  • Как создать 2 одинаковых независимых объекта в JavaScript?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Или же на чистом JS написать свой clone()
    function clone(obj) {
        if (null == obj || "object" != typeof obj) return obj;
        var copy = obj.constructor();
        for (var attr in obj) {
            if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
        }
        return copy;
    }
    
    this.coordinates = clone(coordinates);
    Ответ написан
    1 комментарий
  • ООП в Javascript

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    В первом случае, при создании нового объекта var a = new A(), в этот объект будет каждый раз записываться значения a и b.
    var a = new A(); var b = new A();
    И в a, и в b будут свойства со значениями. И там, и там, будет лежать 100 и 200. То есть, попросту говоря, в первом случае каждый новый объект будет иметь в себе свойства a и b при его создании.
    Во втором же случае объект при создании будет иметь лишь свойство a. Т.к. прототипы довольно интересная вещь и советую почитать о них статьи. Но уже при созданном объект будет и свойство b, т.к. прототипы, как уже сказалось выше, дополняют готовый объект. Единственное отличие в том, что все созданные объекты будут иметь каждый свое свойство a и одно свойство на всех b.
    Прототипирование обычно используется для описания методов объекта. Создал конструктор, в котором описал все свойства объекта, а в прототипе описал методы объекта.
    Ответ написан
    Комментировать