Nell'utilizzo del metodo apply() ho riscontrato un'altra anomalia su IE:
non è possibile definire variabili globali se esistono degli elementi con l'ID uguale al nome della variabile, perché IE ammette l'accesso agli elementi via ID non solo attraverso il metodo DOM-standard getElementById(), ma anche con window.elementID
E' un vero stress perché non solo il metodo è difforme dagli standard, ma perché prevale anche sulla scrittura delle variabili dall'interno di metodi come apply/call.
Esempio:
Codice PHP:
<div id="c">div "c"</div>
<script type="text/javascript">
function oClass(fn) {
this.fn = fn;
this.pass = function() {
this.fn.apply(window, []);
};
}
var obj = new oClass(function() {
c = "Sono globale!";
});
alert("window.c = " + window.c);
obj.pass();
alert("c = " + c);
</script>
Chiaramente su FF tutto come ci si aspetta, su IE invece no...
Era noto questo limite di apply/call su IE?
Se sì, ci sono dei workaround che potete segnalare?