Wydaje się, że aliasing funkcji JavaScript nie działa

Właśnie czytałemto pytanie i chciałem wypróbować metodę aliasu, a nie metodę owijania funkcji, ale nie mogłem sprawić, by działała w Firefoksie 3 lub 3.5beta4 lub Google Chrome, zarówno w ich oknach debugowania, jak i na testowej stronie internetowej.

Firebug:

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

Jeśli umieściłem go na stronie internetowej, wywołanie myAlias ​​daje mi ten błąd:

<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>

Chrome (z jasnością >>>):

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

Na stronie testowej otrzymuję takie samo „Nielegalne wywołanie”.

czy robię coś źle? Czy ktoś inny może to odtworzyć?

Co dziwne, właśnie próbowałem i działa w IE8.

questionAnswers(6)

yourAnswerToTheQuestion