Initializing subtypes using .call() within a subtype

function Product(name, price) { = name;
  this.price = price;

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

function Toy(name, price) {, 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.