Только что закончил читать Крокфорда " JavaScript: The Good Parts ", и у меня есть вопрос, касающийся его позиции по отношению к псевдоклассическому и прототипному подходам. На самом деле меня не очень интересует его позиция; Я просто хочу понять его аргумент, чтобы я мог выработать собственную позицию.
В книге Крокфорд, по-видимому, делает вывод о том, что функции конструктора и «весь этот джаз» не должен использоваться в JavaScript, он упоминает, как плохо реализовано ключевое слово «new» - то есть неконструкторные функции можно вызывать с помощью ключевое слово 'new' и наоборот (потенциально вызывающее проблемы).
Мне показалось, что я понял, откуда он, но, думаю, нет.
Когда мне нужно создать новый модуль, я обычно начинаю примерно так:
function MyModule(something) {
this.something = something || {};
}
А потом я бы добавил несколько методов к его прототипу:
MyModule.prototype = {
setSomething : function(){},
getSomething : function(){},
doSomething : function(){}
}
Мне нравится эта модель; это означает, что я могу создавать новый экземпляр всякий раз, когда он мне нужен, и у него есть свои свойства и методы:
var foo = new MyModule({option1: 'bar'});
// Foo is an object; I can do anything to it; all methods of the "class"
// are available to this instance.
У меня вопрос : Как мне достичь вышеуказанного, используя подход, более подходящий для JavaScript? Другими словами, если бы «JavaScript» был человеком, что бы она предложила?
Также: что означает Крокфорд, когда говорит, что определенный шаблон дизайна «более выразителен», чем другой?