Bene, la bruttezza è soggettiva, ma vediamo.
Di solito scrivono:
function Foo() {}
Foo.prototype.method1 = function() { /*...*/ };
Foo.prototype.method2 = function() { /*...*/ };
di estendere l'oggetto prototype
un constructor function con le proprietà che si desidera essere ereditata alle istanze create dal nuovo operatore.
Ad esempio, con var obj = new Foo();
si sta creando un'istanza del costruttore Foo
, quell'oggetto erediterà le tutte le proprietà legate all'oggetto Foo.prototype
e altri oggetti più alti nel prototype chain.
metodo del Crockford fa lo stesso, il metodo viene definito nell'oggetto Function.prototype
, tutte le funzioni ereditano da tale oggetto, in modo da poter chiamare il metodo come questo:
function Foo() {}
Foo.method('method1', function() { /*...*/ });
Foo.method('method2', function() { /*...*/ });
E 'fondamentalmente solo pelli la prototype
parola dal codice, che considera Crockford brutto ...
"JavaScript le parti buone" è davvero un buon libro, ma penso che si basa sulla prospettiva personale che Douglas Crockfor d ha della lingua.
sono d'accordo con lui con un sacco di cose, ma ho anche in disaccordo con alcuni aspetti ...
Usando la parola "prototipo" sembra più esplicito ed evidente durante la lettura del codice. Grazie per la risposta :) – Matrym
Sono d'accordo. Crockford abbaia dall'albero sbagliato in questo caso IMO. – bobince