Псевдоним функции 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.