Size: a a a

Front-end developers

2019 November 17

DE

Denis Evlampiev in Front-end developers
Oleksandr Nikolskyi
function Owner() {
   this.addCar = function(car) {
     this.car = car;    
   };
   this.setBalance = function(balance) {
     this.balance = balance;
   };
   this.setOwnerId = function(id) {
       this.id = id;
   };  
}

function Company(name = 'Name uncknown', address = 'Address unknown', car = 'The car is missing') {
   this.name = name;
   this.address = address;
   this.car = car;
}

Company.prototype = new Owner();

НЕ МОГУ ПОНЯТЬ(( Как переписать код, так, чтобы при вызове setCar из функции-конструктора, в this.car записывался массив объектов.....при этом при каждом вызове addCar - пушился новый объект в существующий массив
Нужно в родительском конструкторе присваивать туда массив.
function Owner() {
   this.car = [];
}

Методы лучше вынеси в прототип, зачем они объекту?
Owner.prototype.addCar = function(car) {
 this.car.push(car);
};

Потом вызывать родительский контруктор в дочернем, и добвлять значение
function Company(car) {
   Owner.call(this);
   this.addCar(car);    
}

И странно что компания наследуется от владельца))
источник

ON

Oleksandr Nikolskyi in Front-end developers
Maksym Pohribniak
Этот код впринципе неверный, и нарушает много принципов проектирования
Во-первых, почитай про прототипы
Не нужно сохрянять свойства напрямую в this

function Owner() {
}

Owner.prototype.addCar = function(car) {
 this.car = car;    
};
Owner.prototype.setBalance = function(balance) {
 this.balance = balance;
};
Owner.prototype.setOwnerId = function(id) {
 this.id = id;
};
не совсем, понимаю, чем мой код отличается от этого, кроме того, что функции создаются у прототипа Owner )
источник

MP

Maksym Pohribniak in Front-end developers
Как написали выше
почему компания наследуется от владельца?
источник

ON

Oleksandr Nikolskyi in Front-end developers
Maksym Pohribniak
Как написали выше
почему компания наследуется от владельца?
Владелец - это прототип ) У него потомки: Человек и Компания
источник

ON

Oleksandr Nikolskyi in Front-end developers
Собственником автомобиля может быть, как физ, так и юр лицо
источник

ON

Oleksandr Nikolskyi in Front-end developers
Что тут странного ?)
источник

MP

Maksym Pohribniak in Front-end developers
Из кода это не понятно
источник

MP

Maksym Pohribniak in Front-end developers
Значит он неясно это выражает
источник

MP

Maksym Pohribniak in Front-end developers
значит он плохой
источник

ON

Oleksandr Nikolskyi in Front-end developers
У меня домашка такая ) Дожен быть прототип собственник
источник

ON

Oleksandr Nikolskyi in Front-end developers
у его потомков свои свойства
источник

ON

Oleksandr Nikolskyi in Front-end developers
например
источник

ON

Oleksandr Nikolskyi in Front-end developers
function Person(name = 'Name anknown', age = 'Age unknown', profession = 'Profession unknown', car = 'The car is missing') {
   this.name = name;
   this.age = age;
   this.profession = profession;
   this.car = car;
}
источник

ON

Oleksandr Nikolskyi in Front-end developers
function Company(name = 'Name uncknown', address = 'Address unknown', car = 'The car is missing') {
   this.name = name;
   this.address = address;
   this.car = car;
}
источник

ON

Oleksandr Nikolskyi in Front-end developers
Это два Owner по сути со своими свойствами
источник

ON

Oleksandr Nikolskyi in Front-end developers
еще есть функция-конструктр Car
источник
2019 November 18

ON

Oleksandr Nikolskyi in Front-end developers
А в Owner я пытаюсь создать метод, который бы добавлял объекты Car в массив
источник

DE

Denis Evlampiev in Front-end developers
Oleksandr Nikolskyi
function Company(name = 'Name uncknown', address = 'Address unknown', car = 'The car is missing') {
   this.name = name;
   this.address = address;
   this.car = car;
}
В таком контексте более понятно. В любом случае если делать наследование, то весь общий функционал надо выносить в родителя. И инициализировать объект через родительский конструктор. Если не переопределяется логика, то никаких this.car = car в Company быть не должно.
источник

ON

Oleksandr Nikolskyi in Front-end developers
Denis Evlampiev
В таком контексте более понятно. В любом случае если делать наследование, то весь общий функционал надо выносить в родителя. И инициализировать объект через родительский конструктор. Если не переопределяется логика, то никаких this.car = car в Company быть не должно.
Спасибо!)
источник

ON

Oleksandr Nikolskyi in Front-end developers
У меня есть массив объектов, созданных через функцию конструктор [Car, Car]
Как получить доступ к свойствам объектов в таком случае?
источник