Конструктор в объекте

by Artem

JavaScript

'use strict';

var Person = {
  constructor: function Person(name) {
    this.name = name;
    return this;
  },
  sayHi: function() {
    alert(`Hello, ${this.name}`);
    return this;
  }
};
Person.constructor.prototype = Person;

var WebDeveloper = Object.create(Person);
WebDeveloper.constructor = function WebDeveloper(name, skills) {
  Person.constructor.call(this, name);
  this.skills = skills || [];
  return this;
}
WebDeveloper.constructor.prototype = WebDeveloper;

var personDeveloper = Object.create(WebDeveloper).constructor('Artem', ['css', 'html', 'js']);
console.dir(Object.getPrototypeOf(personDeveloper));