call permet de changer l'objet "this" dans une fonction lors de l'appel.
var a = {
name: 'objet a',
toString: function() { return this.name; }
};
var b = {
name: 'objet b',
toString: function() { return this.name; }
};
a.toString() // donne 'objet a'
a.toString.call(b); // donne 'objet b' car this pointe vers l'objet b.
Il est a noté que dans IE8, certaines fonctions natives ne possèdent pas "call" comme pour window.open.
// fonctionne avec Gecko mais pas dans IE8 (call is not a method of object window.open).
window.open.call(window, 'test.htm');
// fonctionne avec Gecko et IE8
window.nativeopen = window.open;
window.open = function(url) {
window.nativeopen(url);
}
window.open('test.htm');