Во всех типах браузеров, если точнее. :^) Этот маленький отладчик можно использовать по какой небудь специальной директиве, которая включает отладку (например, двойной клик на копирайт :^), чтобы протестировать код в нужных местах с любого браузера, даже того, где отладчик не установлен (например, комп Маши из бухгалтерии).
Но вообще говоря, способ и не претендует на полноценный отладчик — так, на всякий случай. :^)
> Ну блин, ещё бы, совершенно новый независимый объект Number
На самом деле индексом в массиве объектов является примитив, так что проверка нужна.
> extenral stuff копируется в каждый новый объект, а не наследуется
Я сейчас как раз ищу решение, как его унаследовать. :^) Это, я надеюсь, позволит избавиться от перерасхода ресурсов и от тормозов в лисе при первом прогоне. Спасибо за совет.
> в некоторых реализациях, всё-таки, можно получить доступ к инкапсулированному var-у «objs»
А как? Чесслово, интересно. Может, это позволит сделать что-нибудь интересное. :^)
kriomant, в принципе вы правы, создаётся новое замыкание (а дублирование кода действительно зависит от браузера). Но я, очевидно, немного неверно сформулировал мысль: обратите внимание, что все private-методы выносятся за пределы определения класса, и, следовательно, сам класс о них ничего не знает и никак их не дублирует — а как правило таких методов больше, чем публичных, работающих с ними (это уже просто практика), которые и создаются в конструкторе. Тесты показывают, что выигрыш действительно есть — где-то в 1,8 раза (например, 0,768 против 0,454 для создания 1000 объектов с 1000-ей закрытых и 1000-й открытых методов).
А вот с приведённым решением с сервером объектов, ради которого статья и затевалась, получается интереснее — это решение работает приблизительно в 7 раз быстрее во всех браузерах, кроме Firefox (там медленнее)… но только при первом прогоне — потом (при обновлении страницы) и лис прекрасно обрабатывает его.
Но вообще говоря, способ и не претендует на полноценный отладчик — так, на всякий случай. :^)
Или речь о показе контекста брэйка?
> т.е. не просто примитив, а именно примитив-строка
Я знаю, но в данном случае проверяется всё равно на instanceof Number. :^)
> И можно не опасаться, что кто-то переопределит номер объекта — сервер откажет такому запросу (см. две последние стоки)
Да, я здесь лишнего написал. Извините.
> можно передать вызывающий контекст
От таких вещей, к сожалению, защититься не получится. По крайней мере, сейчас я не знаю — как.
На самом деле индексом в массиве объектов является примитив, так что проверка нужна.
> extenral stuff копируется в каждый новый объект, а не наследуется
Я сейчас как раз ищу решение, как его унаследовать. :^) Это, я надеюсь, позволит избавиться от перерасхода ресурсов и от тормозов в лисе при первом прогоне. Спасибо за совет.
> в некоторых реализациях, всё-таки, можно получить доступ к инкапсулированному var-у «objs»
А как? Чесслово, интересно. Может, это позволит сделать что-нибудь интересное. :^)
А вот с приведённым решением с сервером объектов, ради которого статья и затевалась, получается интереснее — это решение работает приблизительно в 7 раз быстрее во всех браузерах, кроме Firefox (там медленнее)… но только при первом прогоне — потом (при обновлении страницы) и лис прекрасно обрабатывает его.
Такая вот получается картина.