Javascript: How to превратить массив объектов JSON обратно в прототипы общего доступа к типу объекта?

Если у вас есть массив объектов продукта, созданный из 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? Как бы вы это запрограммировали?Каковы лучшие возможности?

6
задан Zachary Scott 8 June 2011 в 19:47
поделиться