Псевдоним функции JavaScript не работает

Я просто читалэтот вопрос и я хотел попробовать метод псевдонима, а не метод функции-обертки, но я не смог заставить его работать в Firefox 3 или 3.5beta4 или в Google Chrome, как в их окнах отладки, так и на тестовой веб-странице.

Firebug:

<code>>>> window.myAlias = document.getElementById
function()
>>> myAlias('item1')
>>> window.myAlias('item1')
>>> document.getElementById('item1')
<div id="item1">
</code>

Если я помещу это на веб-страницу, вызов myAlias выдаст мне эту ошибку:

<code>uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: file:///[...snip...]/test.html :: <TOP_LEVEL> :: line 7" data: no]
</code>

Хром (со вставками для ясности):

<code>>>> window.myAlias = document.getElementById
function getElementById() { [native code] }
>>> window.myAlias('item1')
TypeError: Illegal invocation
>>> document.getElementById('item1')
<div id=?"item1">?
</code>

И на тестовой странице я получаю тот же «Незаконный вызов».

Я делаю что-то неправильно? Кто-нибудь еще может воспроизвести это?

Также, как ни странно, я только что попробовал, и это работает в IE8.

Ответы на вопрос(6)

Ваш ответ на вопрос