TypeError: ce.le prototype est pas défini lors de l'appel de la Fonction.le prototype.méthode()

Je suis en train de lire le livre "Javascript: Les bonnes parties".
Maintenant, je suis à la lecture du chapitre sur l'Augmentant Types:

Function.prototype.method = function (name, func) {
   this.prototype[name] = func;
   return this;
};

Mise à JOUR:
Pourquoi le code suivant ne fonctionne pas?

js> Function.prototype.method("test", function(){print("TEST")});
typein:2: TypeError: this.prototype is undefined

Mais code suivant fonctionne sans problèmes:

js> Function.method("test", function(){print("TEST")});
function Function() {[native code]}

Pourquoi ce code fonctionne?

js> var obj = {"status" : "ST"};
js> typeof obj;
"object"
js> obj.method = function(){print(this.status)};
(function () {print(this.status);})
js> obj.method();
ST

"obj" est l'objet.
Mais je peux appeler la méthode "méthode".
Quelle est la différence entre la Fonction.le prototype.méthode et obj.méthode?

OriginalL'auteur Volodymyr Bezuglyy | 2012-02-08