Клиентская библиотека JavaScript, которую я разработал, использует объекты как хеши в некоторых областях.Он просматривает объекты, проанализированные из данных Json, с помощью цикла for ... in, используя имя свойства в качестве ключа.например ... (псевдокод)
var conversations = {'sha1-string':{name:'foo',messages:[]}}
for(var id in conversations){
console.log(id);
console.log(conversations[id].name);
}
К сожалению, MooTools (и Prototype, и т. д.) добавляют методы в глобальные пространства имен, поэтому циклы my for ... in теперь выполняют итерацию при добавлении MooTools (например, limit).(вокруг, времена, каждый), вызывая ошибки, когда он применяет к ним логику, как если бы это были ожидаемые данные.
Поскольку это библиотека, я должен ожидать, что она будет использоваться с MooTools, Prototype и т. д.Есть ли простой способ обойти эту проблему?Мое текущее решение состоит в том, чтобы просто передать объект методу, который удаляет определенные записи MooTools и возвращает чистый объект, но это также означает проверку того, что добавляют Prototype и все подобные библиотеки, и кажется, что это обратный способ делать вещи.
Мое другое решение - перестать полагаться на имя свойства в качестве ключа и выполнить проверку в циклах, чтобы убедиться, что я смотрю на нужные данные.Прежде чем я сделаю это переписывание, мне интересно, есть ли у кого-нибудь лучшее / существующее решение?
Спасибо:)