Ну, уродство субъективно, но посмотрим.
Вы обычно пишете:
function Foo () {}
Foo.prototype.method1 = function () { /*...*/ };
Foo.prototype.method2 = function () { /*...*/ };
Вы расширяете объект prototype
функцией конструктора со свойствами, которые вы хотите наследовать, в экземпляры, созданные оператором new.
Например, с помощью var obj = new Foo();
вы создаете экземпляр конструктора Foo
, этот объект наследует все свойства, связанные с объектом Foo.prototype
и другими объектами, расположенными выше в цепочке прототипов .
Метод Крокфорда делает то же самое, этот метод определен в объекте Function.prototype
, все функции наследуются от этого объекта, поэтому вы можете вызывать метод следующим образом:
function Foo () {}
Foo.method('method1', function () { /*...*/ });
Foo.method('method2', function () { /*...*/ });
Это просто скрывает prototype
слово из кода, которое Крокфорд считает некрасивым ...
"JavaScript The Good Parts" - действительно хорошая книга, но я думаю, что она основана на личной точке зрения Дугласа Крокфорда на язык.
Я согласен с ним во многих вещах, но я также не согласен с некоторыми аспектами ...