Иногда существует JS framework или библиотека, которая считает действительно разумной идею добавить некоторые новые сетевые функции в прототип Object
или Array
.Я не могу найти больше примеров прямо сейчас, но я помню, что у меня были проблемы с этим раньше.Конечно, это нарушает старый добрый цикл for(...in...)
, потому что внезапно эти свойства теперь тоже перечисляются.Чтобы обойти это, вы должны проверить каждое перечисленное свойство с .hasOwnProperty()
перед доступом.Что является громоздким, когда я пытаюсь написать надежный код.
Итак, я задался вопросом - есть ли способ, которым я мог бы сделать свои собственные объекты так, чтобы они не наследовали от Object
?Начальная игра с .prototype
не дала никаких результатов.Возможно, в этом есть какая-то хитрость?Или все будет всегда наследоваться от Object
, и я ничего не могу с этим поделать?
Добавлено: Наверное, я должен был отметить, что хочу это для клиентских скриптов в браузерах, исовместимость должна включать IE6 или хотя бы IE7.Другие требования к версии браузера более мягкие, хотя, конечно, чем больше, тем лучше.(Да, к сожалению, корпоративный мир все еще живет в мире IE ...)