2015-04-16 13 views
6

Sto leggendo JavaScript - The Good Parts attualmente. Quindi ho a che fare con l'aumento dei tipi. Capisco la motivazione e l'implementazione. Ma se guardo il codice ...JavaScript: Tipi aumentanti - Scopo di "restituire questo"

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

... quindi non capisco lo scopo del ritorno. Ho inserito il ritorno nei commenti. Questo non ha un effetto. Funzionava comunque.

mio codice completo:

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

Così che cosa è per?

+1

Probabilmente per consentire il concatenamento del metodo. http://en.m.wikipedia.org/wiki/Method_chaining –

risposta

14

In genere questo è fatto in modo da poter metodo catena di chiamate, i cosiddetti "interfacce fluente":

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

Es:

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

Nel caso della stringa, un'altra nuova stringa è essere restituito invece se this, ma si ottiene l'idea del perché è utile.