Если у вас есть массив объектов продукта, созданный из JSON, как бы вы добавили метод-прототип к объектам продукта, чтобы они все указывали на один и тот же метод? Как бы вы научили JavaScript распознавать все объекты продукта в массиве как экземпляры одного класса, не воссоздавая их?
Если я, например, раскрываю массив Продуктов JSON и хочу, чтобы у каждого продукта в массиве был метод-прототип, как мне добавить один метод-прототип для каждой копии Продукта?
Сначала я подумал, что у меня есть конструктор Product, который принимает данные 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 $.extend
методы для каждого прототипа объекта Product: создать объект, загруженный прототипами, а затем $.extend
этот объект поверх существующих объектов Product? Как бы вы это закодировали? Каковы лучшие возможности?