Если у вас есть массив объектов продукта, созданный из JSON, как бы вы добавили метод прототипа к объектам продукта, чтобы все они указывали на один и тот же метод? Как бы вы научили JavaScript распознавать, что все объекты продуктов в массиве являются экземплярами одного и того же класса, не создавая их заново?
Если я, например, извлекаю массив продуктов JSON и хочу, чтобы каждый продукт в массиве имел метод прототипа , как мне добавить единственный метод прототипа к каждой копии продукта?
Сначала я подумал о конструкторе продукта, который принимает данные продукта JSON в качестве параметра и возвращает новый продукт с прототипами и т. д., который заменит отправленные данные с сервера. Я считаю, что это непрактично, потому что вы воссоздаете объекты. Мы просто хотим добавить функции, общие для всех объектов.
Можно ли $. Extend
свойства прототипа объекта для объекта JSON, чтобы каждый объект JSON ссылался на одни и те же функции (а не на копия)?
Например:
var Products = [];
Products[0] = {};
Products[0].ID = 7;
Products[0].prototype.GetID = function() { return this.ID; };
Products[1].ID = 8;
Products[1].prototype = Products[0].prototype; // ??
Я знаю, что это выглядит плохо, но что, если вы JQuery $. распространите
методы на каждый прототип объекта Product: создайте объект, загруженный прототипами, затем $. Расширить
этот объект поверх существующих объектов Product? Как бы вы это запрограммировали?Каковы лучшие возможности?