Похоже, вы хотите отслеживать все объекты, которые вы создаете с помощью new Product
.Это то, что вам нужно реализовать самостоятельно.
Просто создайте массив:
const stock = [];
stock.push(new Product(0, "Balloon"));
// ...
stock.push(new Product(0, "Monopoly"));
Тогда вы можете просто итерировать их:
for (const product of stock) {
console.log(product.getname());
}
Это хорошопричина в том, что JS не предоставляет вам такой массив из коробки: если это было сделано, то ни один из созданных объектов никогда не сможет быть собран мусором;они всегда будут рассматриваться как то, что вам еще нужно использовать.Поэтому хорошо, что для этого нет встроенного механизма.
Относительно вашей собственной попытки
Product.prototype.getname(obj);
Это не имеет смысла: getname
не принимает аргумент,Вы обычно вызываете функции-прототипы, например методы:
obj.getname()
В некоторых случаях вы хотели бы использовать Product.prototype.getname
, но это необходимо, только когда obj
не является экземпляром Product
, но такпохоже, что это будет работать для вызова getname
на нем.В этом случае используйте .call()
:
Product.prototype.getname.call(obj);