Я делаю свой первый проект javascript, который сильно использует объекты. Из-за того, как он работает, почти все пользовательские объекты сделаны так:Javascript «classes» (без фреймворков)
namespaceobj = {};
namespaceobj.subobject = {};
namespaceobj.subobject.somefunction = function(arg, uments) {
// Do Stuff
}
namespaceobj.subobject.somedata = 10;
namespaceobj.othersubject = {};
namespaceobj.othersubject.somefunction = function(some, args) {
// Do more stuff
}
// More subobjects etc.
Что хорошо, так как все пользовательские объекты имеют только один экземпляр в любом случае (примеры подобъектов являются UI, инструменты, то общие данные и т. д.).
Однако я видел код сделал что-то вроде этого (синтаксис, вероятно, неправильно, это просто из памяти видеть подобный код)
function SomeClass() {
this.somedata = 42;
this.somefunction = function(a, few, args) {
// Do Stuff
}
}
// More classes and stuff
// Elsewhere:
someInstance = new SomeClass(); // AFA I recall, new was optional
someInstance.somefunction();
Может кто-нибудь объяснить, как «классы» во втором примере работы, и любые подводные камни, с которыми я мог столкнуться при их использовании.