Qu'est-ce que le retour dans Function.prototype.method fait?

Je viens de commencer à lire JavaScript: The Good Parts et je suis déjà confondu par ce que 'return this' fait dans Function.prototype.method? Je comprends comment «this» et «return» fonctionnent. «Ceci» est essentiellement un pointeur pour l'objet actuel et le «retour» sort simplement de la fonction lors de la sortie d'une valeur si vous l'avez décrit; Dans notre cas, 'this'.

Voici le code auquel je fais référence.

Function.prototype.method = function(name, func) { this.prototype[name] = func; return this; } /* SIMPLE CONSTRUCTOR */ function Person(name, age) { this.name = name; this.age = age; } /* ADD METHODS */ Person.method('getName', function() { return this.name; }); Person.method('getAge', function() { return this.age; }); var rclark = new Person('Ryan Clark', 22); console.log(rclark.getName()); // string(Ryan Clark) console.log(rclark.getAge()); // number(22) 

J'ai essayé d'omettre «retourner ceci» pour voir si le code se casserait mais ce n'est pas le cas? Que fait exactement «retourner cela»? Je continuerai à progresser dans ce livre mais je veux m'assurer que je comprends tout. Toute aide serait appréciée.

Il permet de chaîner afin que vous puissiez faire quelque chose comme ceci:

 /* ADD METHODS */ Person.method('getName', function() { return this.name; }) .method('getAge', function() { return this.age; }); 

return this renvoie l'objet sur lequel method() été appelée, et après qu'il a été modifié en y ajoutant la méthode passée.

En l'omettant, vous ne briserez pas votre code, mais c'est un meilleur style qui permet l'invocation de la chaîne en chaîne, vous pouvez par exemple:

 Person.method('getName', function() { return this.name; }).method('getAge', function() { return this.age; });