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.