Многие шаблоны для сайтов, которые я сделал, были написаны с использованием javascript и jquery. Часто такой код выглядит ужасно, для тех кто в теме понятно почему, смесь из запросов к библиотеке и синтаксиса javascript внутри функций, в одном большом модуле заставляет шевелиться волосы, особенно когда количество таких функций хорошо переваливает за 50.
Как и любой программист, относящийся к собственным разработкам критично, я давно собирался создать в этом творческом беспорядке стройную систему кода. Ничего специального для высокоэффективной организации кода в javscript предпринимать не надо, все что нужно уже встроено в интерпретатор браузера.
Первая технология, которая становится незаменимой - JSON (javascript object notation), которая позволяет описывать объекты произвольной сложности единой конструкцией кода (можно провести аналогию с классом c#). Единственная переменная объект описывается в отдельном файле, внутри фигурных скобок перечисляются свойства и методы объекта, кроме того, таким же способом, могут быть описаны и вложенные объекты.
Для объектов в единственном экземпляре такая методика удобна и незаменима. Создавайте коллекцию объектов, и используйте их в различных проектах - налицо повторное использование кода и стандартизация кода.
Другой случай, когда требуется создавать множество объектов одного типа, или по аналогии с с# - множество экземпляров класса. В этом случае все свойства и методы объекта должны быть описаны внутри его прототипа, а сам объект будет создаваться через операцию new.
Прототип объектов javascript происходит из объекта Object, встроенного в цепочку классов javascript. Этот объект негласно является родительским для всех остальных объектов. Для всех экземпляром объекта, созданных в течении работы скрипта, свойства и методы из прототипа, будут разделяться. Если же поместить их вне прототипа, они будут уникальными для каждого отдельного объекта.
Прототип объектов используется для расширения возможностей базового javascript. Например, библиотека jquery, через прототипы дополняет стандартные объекты расширенным функционалом...
Мы используем cookie-файлы, чтобы улучшить сервисы для вас. Если ваш возраст менее 13 лет, настроить cookie-файлы должен ваш законный представитель. Больше информации
Комментарии 11
{
objectName : "Название объекта",
objectDate: new Date('01/01/1979'
getName: function () { return this.objectName; },
setName:function (newName) { this.objectName = newName; },
innerObject:
{
innerObjectName : "Название вложенного объекта",
innerObjectParams: ["p1", "p2", "p3", "p4"],
setInnerParam: function(paramIndex, paramValue) { this.innerObjectParams[paramIndex] = paramValue; },
getName: function () { return this.innerObjectName; },
setName: function (newName) { this.innerObjectName = newName;},
}
}
- как видите, описание даже сложных объект...Ещёvar myObject =
{
objectName : "Название объекта",
objectDate: new Date('01/01/1979'
getName: function () { return this.objectName; },
setName:function (newName) { this.objectName = newName; },
innerObject:
{
innerObjectName : "Название вложенного объекта",
innerObjectParams: ["p1", "p2", "p3", "p4"],
setInnerParam: function(paramIndex, paramValue) { this.innerObjectParams[paramIndex] = paramValue; },
getName: function () { return this.innerObjectName; },
setName: function (newName) { this.innerObjectName = newName;},
}
}
- как видите, описание даже сложных объектов в JSON нотации становится весьма приятным занятием