Initializing subtypes using .call() within a subtype

// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call
function Product(name, price) {
  this.name = name;
  this.price = price;
}

function Food(name, price) {
  Product.call(this, name, price);
  this.category = 'food';
}

function Toy(name, price) {
  Product.call(this, name, price);
  this.category = 'toy';
}

const cheese = new Food('feta', 5);
const fun = new Toy('robot', 40);

can the function body of constructor function Food be treated as a copy/paste inside of the two sub type definitions above?

That seems to be an unusual pattern. I don’t often see initializations of function definitions within other types. Usually initializations create new instances.