Ваш код создает объект и присваивает его глобальной переменной chat
, которая имеет свойство module
в качестве свойства:
var chat = {
module: function...
};
... но затем, когда вы его используете, выиспользуйте Application.module
вместо chat.module
.
Application.module('Chat')
и
var foo = new Application.module('Chat').Collection();
Мне кажется, что ваша переменная chat
должна называться Application
.
Также обратите внимание, что вы используете module
двумя различными способами, как с new
, так и без него. Без будет правильным использованием на основе вашего кода.Он будет работать в обоих направлениях, потому что module
возвращает функцию (которая является объектом) и, таким образом, отменяет нормальное поведение new
, но это означает, что использование new
не имеет смысла и вводит в заблуждение того, кто читает код.