Показать сообщение отдельно
  #2 (permalink)  
Старый 29.08.2019, 13:09
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 456

getInfo здесь вообще не в тему, сам по себе экземпляр класса это уже и есть то самое Info, также не понятно зачем аргумент validDate, ну и в User.call не надо все arguments, а только отнаследованные.
function User(name, date) {
    this.name = name;
    this.date = date;
}

function Admin(name, date, isRootAdmin) {
    User.call(this, name, date);
    this.isRootAdmin = isRootAdmin;
}
Admin.prototype = Object.create(User.prototype);
Admin.prototype.constructor = Admin;

function Guest(name, date) {
    User.call(this, name, date);
    this.validDate = new Date(date.getTime());
    this.validDate.setDate(date.getDate() + 7);
}
Guest.prototype = Object.create(User.prototype);
Guest.prototype.constructor = Guest;

var guest = new Guest('Guest1', new Date);
console.log(guest);

И это старая школа, а const это новая и там есть class:
class User {
    constructor(name, date) {
        this.name = name;
        this.date = date;
    }
}
class Admin extends User {
    constructor(name, date, isRootAdmin) {
        super(name, date);
        this.isRootAdmin = isRootAdmin;
    }
}
class Guest extends User {
    constructor(name, date) {
        super(name, date);
        this.validDate = new Date(date.getTime());
        this.validDate.setDate(date.getDate() + 7);
    }
}
let guest = new Guest('Guest1', new Date);
console.log(guest);

Последний раз редактировалось Rise, 29.08.2019 в 13:18.
Ответить с цитированием