2015-04-16 9 views
6

Ich lese JavaScript - Die guten Teile derzeit. Also habe ich mich mit der Vergrößerung von Typen beschäftigt. Ich verstehe die Motivation und die Umsetzung. Aber wenn ich mir den Code anschaue ...JavaScript: Erweiterungstypen - Zweck von "return this"

Function.prototype.method = function(ident, funct) { 
    this.prototype[ident] = funct; 
    return this; // No idea. For what? 
}; 

... dann verstehe ich den Zweck der Rückgabe nicht. Ich habe die Rückkehr in Kommentare gesetzt. Das hat keine Auswirkung. Es funktionierte trotzdem.

Mein vollständiger Code:

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

Date.method('sayHello', function() { 
    alert(new Date().toString()); 
}); 

var myDate = new Date(); 

myDate.sayHello(); 

Also, was es ist?

+1

Wahrscheinlich, um Methodenverkettung zu ermöglichen. http://en.m.wikipedia.org/wiki/Method_chaining –

Antwort

14

Typischerweise wird dies getan, so dass Sie Ketten Methodenaufrufe können, so genannte "fließend Schnittstellen":

obj.method().anotherMethod().yetAnotherMethod() 

ZB:

'string'.toUpperCase().substr(2).repeat(3) 

Bei der Zeichenfolge andere neue Zeichenfolge wird zurückgegeben, wenn this, aber Sie erhalten die Idee, warum es nützlich ist.