Как изменить контекст функции chane(this) при нажатии button?

Please help!

Мне нужно создать функцию change() в скрипте. Вы можете увидеть вызов этой функции в HTML как change(this) С нажатием кнопки нужно изменить значения функций First и Second.

Например, должно быть:

let first = new First(26, 'Melica', 'human', 'doctor');
let second = new Second(300, 'Michael', 'ghost', 'unemployed', 'count');

Таким образом, при нажатии button (onclick="change(this)") функция должна принимать значения функций First или Second.

Например:

Если я нажму на кнопку с button.innerText first, функция должна принять значения
new First(26, 'Melisa', ' human', 'doctor').

Обратите внимание, что функции-конструкторы First и Second имеют значения из конструктора BASE и одно собственное. First и Second — это прототипы функции BASE.

function Base(name, age, species) {
  this.name = name;
  this.age = age;
  this.species = species;

  if (this.age < 0) {
    this.age = 0;
  }
}

Base.prototype.sayHello = function() {
  return console.log(`Hello, my name is ${this.name}!`);
}

function First(age, name, species, job) {
  Base.call(this, name, age, species);
  this.job = job;

}

First.prototype = Object.create(Base.prototype);
First.prototype.constructor = Base;


function Second(age, name, species, color) {
  Base.call(this, name, age, species);
  this.color = color;
}
Second.prototype = Object.create(Base.prototype);
Second.prototype.constructor = Base
<div class="controls">
  <button class="protoBtn active" onclick="change(this)">none</button>
  <button class="protoBtn" onclick="change(this)">first</button>
  <button class="protoBtn" onclick="change(this)">second</button>
  <button class="protoBtn" onclick="change(this)">third</button>
</div>


Ответы (0 шт):