Дуглас Крокфорд писал в своей книге (Page 4):«метод» метод в книге Крокфорд в: Javascript: The Good Parts
На протяжении всей книги, метод method
используется для определения новых методов, это его определение:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Затем он начинает использовать этот method
добавить метод в Number, String, Function, Object, Array, RegExp
, а вот полный список:
P33:
Number.method('integer', function() {...});
String.method('trim', function() {...});
P40 (не уверен, если есть опечатка в Page 41: конец()):
String.method('deentityify', function() {...}());
P43 & P44:
Function.method('curry', function() {...});
P47 (я запутался здесь, дон» знаю, почему Крокфорд определить new
метод, и он кажется, никогда не использовать new
метод в книге):
Function.method('new', function() {...});
P48:
Function.method('inherits', function (Parent) {...});
Р54:
Object.method('superior', function (name) {...});
P62:
Array.method('reduce', function (f, value) {...});
Р79:
Array.method('pop', function() {...});
Array.method('push', function() {...});
Array.method('shift', function() {...});
Р82:
Array.method('splice', function (start, deleteCount) {...});
P84:
Function.method('bind', function (that) {...});
P88:
RegExp.method('test', function (string) {...});
String.method('charAt', function (pos) {...});
P90 (не уверен, если есть опечатка в Page 91: конец()):
String.method('entityify', function() {...}());
определение method
основан на Function
, почему его можно использовать в Number, String, Object, Array, RegExp
кроме Function
? И может ли этот method
использоваться для других типов данных?
Еще один маленький вопрос: в определении Array.dim, Array.matrix, Array.identity
не используется выше method
, почему?
Я не уверен, если номер, String, Object, Array, RegExp (Может быть, функция и дата и Boolean, а) все функции. Кажется, что они являются глобальными объектами. – John
@ Джон: Уверяю вас, это все функции. Попробуйте 'alert (typeof Number)' и т. Д., Если вы мне не верите, или проверьте спецификацию (раздел 15.1.4): http://www.ecma-international.org/publications/standards/Ecma-262.htm , Они также являются свойствами глобального объекта, если это то, к чему вы обращались. –
@ Джон: Понятно, вы просмотрели документацию Mozilla по адресу https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects. Это правильно, так же как и функции, 'Number',' String', 'Object' и др. Также являются объектами, потому что все функции являются объектами; также верно, что в качестве свойств глобального объекта они доступны во всем мире, поэтому их можно охарактеризовать как «глобальные объекты». Однако в свете существования официально определенного термина «глобальный объект», я считаю использование Mozilla термином «глобальные объекты» довольно бесполезным. –