Douglas Crockford escribió en su libro (Página 4):método "método" en el libro de Crockford: Javascript: las partes buenas
lo largo del libro, un método method
se utiliza para definir nuevos métodos, Esta es su definición:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Luego comienza a utilizar este método para agregar method
en Number, String, Function, Object, Array, RegExp
, y aquí está la lista completa:
P33:
Number.method('integer', function() {...});
String.method('trim', function() {...});
P40 (no estoy seguro si hay un error de imprenta en la página 41: el final()):
String.method('deentityify', function() {...}());
P43 & P44:
Function.method('curry', function() {...});
P47 (estoy confundido aquí, don' sé por qué Crockford definir new
método, y nunca parece usar new
método en el 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 (no estoy seguro si hay un error de imprenta en la página 91: el final()):
String.method('entityify', function() {...}());
El definición method
se basa en Function
, por qué se puede usar en Number, String, Object, Array, RegExp
además de Function
? ¿Y se puede utilizar este method
para otro tipo de datos?
Otra pequeña pregunta: en la página 63 & 64, la definición de Array.dim, Array.matrix, Array.identity
no se utilizó anteriormente method
, ¿por qué?
No estoy seguro de si Number, String, Object, Array, RegExp (Tal vez la función booleana y fecha y así) son todas las funciones. Parece que son objetos globales. – John
@John: Te aseguro que todas son funciones. Pruebe 'alert (typeof Number)' etc. si no me cree, o consulte la especificación (sección 15.1.4): http://www.ecma-international.org/publications/standards/Ecma-262.htm . También son propiedades del objeto global, si eso es lo que estabas obteniendo. –
@John: Veo, usted ha revisado la documentación de Mozilla en https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects. Es correcto ya que además de ser funciones, 'Number',' String', 'Object' et al también son objetos, porque todas las funciones son objetos; también es cierto que, como propiedades del objeto global, están disponibles globalmente, por lo que podrían describirse como "objetos globales". Sin embargo, a la luz de la existencia del término oficialmente definido "objeto global", encuentro que el uso que hace Mozilla del término "Objetos Globales" no es útil. –