Сообщение от Nekromancer
|
и потом распространяй/ используй его.
|
Распространять особого смысла не вижу, ибо случай довольно специфичный.
Для собственного использования проще в поддержании выглядит фикс через оборачивание извне нужных методов - фикс навсегда, без необходимости пересборки, и для его работы не нужен человек умеющий пересобирать jQuery. Но это тема отдельного обсуждения внутри команды.
Сообщение от Nekromancer
|
Кстати, а зачем добавлять этот кеш в prototype?
|
Есть набор объектов, некоторые свойства которых реализованы в виде гетеров/сетеров, а реальные значения хранятся в $.data объекта.
Это поведение свойств объектов задается в их конструкторе, а в их гетерах/сетерах содержится дополнительная внешняя логика.
Так вот если использовать объект с гетером/сетером в качестве прототипа для других объектов, то в них this будет указывать на конечный объект, а не на прототип, и это нормально.
А если использовать $.data(this), то в случае наличия у прототипа своего кэша, и отсутствия у целевого объекта, то кэщ возьмется от прототипа и будет общим.
Пол беды, что не удается использовать jQuery-вский кэш, ведь нетрудно создать свой, хотя и хотелось бы использовать существующий лаконичный интерфейс.
Но вторая половина беды начинается, когда на эти объекты надо навешивать обработчики событий(мне надо), ведь обработчики также хранятся в $.data.
Изобретать отдельную библиотеку для механизма событий у таких объектов , или копипастить jQuery-вскую, не кажется хорошей идеей