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