function.call

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');