Douglas Crockford ha scritto nel suo libro (pagina 4):metodo "metodo" nel libro di Crockford: JavaScript: le parti buone
In tutto il libro, un metodo method
è usato per definire nuovi metodi, questa è la sua definizione:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Poi si inizia a utilizzare questa method
per aggiungere metodo Number, String, Function, Object, Array, RegExp
, e qui è la lista completa:
P33:
Number.method('integer', function() {...});
String.method('trim', function() {...});
P40 (non so se v'è un errore di stampa nella pagina 41: la fine()):
String.method('deentityify', function() {...}());
P43 & P44:
Function.method('curry', function() {...});
P47 (Sono confuso qui, don' so perché Crockford definire new
metodo, e lui sembra non utilizzare new
metodo nel libro):
Function.method('new', function() {...});
P48:
Function.method('inherits', function (Parent) {...});
P54:
Object.method('superior', function (name) {...});
P62:
Array.method('reduce', function (f, value) {...});
P79:
Array.method('pop', function() {...});
Array.method('push', function() {...});
Array.method('shift', function() {...});
P82:
Array.method('splice', function (start, deleteCount) {...});
P84:
Function.method('bind', function (that) {...});
P88:
RegExp.method('test', function (string) {...});
String.method('charAt', function (pos) {...});
P90 (non so se v'è un errore di stampa nella pagina 91: la fine()):
String.method('entityify', function() {...}());
Il definizione method
si basa su Function
, perché può essere utilizzato in Number, String, Object, Array, RegExp
oltre allo Function
? E questo method
può essere utilizzato per altri tipi di dati?
Un'altra piccola domanda: in Page 63 & 64, la definizione di Array.dim, Array.matrix, Array.identity
non ha utilizzato sopra method
, perché?
Non sono sicuro se il numero, String, Object, Array, RegExp (Forse funzioni e la data e booleano pure) sono tutte le funzioni. Sembra che siano oggetti globali. – John
@ John: ti assicuro che sono tutte funzioni. Prova 'alert (typeof Number) 'ecc. Se non mi credi, o controlla le specifiche (sezione 15.1.4): http://www.ecma-international.org/publications/standards/Ecma-262.htm . Sono anche proprietà dell'oggetto globale, se è quello che stavi ottenendo. –
@John: Vede, avete esaminato la documentazione di Mozilla su https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects. È corretto in quanto oltre ad essere funzioni, 'Numero',' String', 'Object' e altri sono anche oggetti, perché tutte le funzioni sono oggetti; è anche vero che come proprietà dell'oggetto globale, sono disponibili globalmente, quindi potrebbero essere descritte come "oggetti globali". Tuttavia, alla luce dell'esistenza del termine ufficialmente definito "oggetto globale", trovo l'uso di Mozilla del termine "Oggetti Globali" piuttosto scostante. –