Я просто читал этот вопрос и хотел попробовать использовать метод псевдонима, а не метод функции-обертки, но я не мог заставить его работать либо Firefox 3, либо 3.5beta4, либо Google Chrome, как в их отладочных окнах, так и на тестовой веб-странице.
Firebug:
>>> window.myAlias = document.getElementById
function()
>>> myAlias('item1')
>>> window.myAlias('item1')
>>> document.getElementById('item1')
<div id="item1">
Если я помещаю его на веб-страницу, вызов myAlias дает мне эту ошибку:
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]
Chrome (с добавлением → > для ясности):
>>> window.myAlias = document.getElementById
function getElementById() { [native code] }
>>> window.myAlias('item1')
TypeError: Illegal invocation
>>> document.getElementById('item1')
<div id=?"item1">?
И на тестовой странице я получаю тот же "Незаконный вызов".
Я что-то делаю неправильно? Может ли кто-нибудь еще воспроизвести это?
Кроме того, как ни странно, я просто попробовал, и он работает в IE8.