C'est bien pour étendre les "classes customs" qui se basent sur le constructeur de function
mais pas pour les éléments natifs (Array
, Date
, etc). On ne peut pas, ou presque, les étendre.
Date.UTC(2012,02,30); // ok
MyDate.UTC(2012,02,30); // has no method 'UTC'
var d = new MyDate();
console.log(d.getHours()); // this is not a Date object.
Car, en dur dans le moteur Javascript, chaque méthode de Date va vérifier que l'objet en question est bien une instance de Date
. Voici un extrait du code V8
(pour prendre un moteur en exemple) :