Prototype Pattern

by Artem

JavaScript

'use strict';

function Employee(name = 'Anonymous') {
  this.name = name;
  this.say = function() {
    return `Hello, my name is ${name}!`;
  }
}

function EmployeePrototype(proto) {
  this.clone = function() {
    const employee = new Employee();
    employee.name = proto.name;
    employee.say = proto.say;
    return employee;
  };
}

const proto = new Employee();
const prototype = new EmployeePrototype(proto);
const employee = prototype.clone();
employee.name = 'Artem';
console.log(employee);