Давайте внимательнее посмотрим на код, который, кажется, вполне знакомым:
alert("Hello world");
Можно сразу определить alert как функцию, которая вызывается с одним аргументом: строкой "Hello world". Я хотел бы обратить здесь внимание на то, что не требуется писать:
var temporaryString = "Hello world";
alert(temporaryString);
JavaScript просто понимает, что все, содержащееся внутри пары двойных кавычек (" "), должно интерпретироваться как строка, и делает всю необходимую фоновую работу, необходимую для правильной работы такой записи. Создается строка и передается прямо в функцию. Формально "Hello world" ` называется строковым литералом ; вы, чтобы создать строку, просто вводите все, что должно в ней находиться.
JavaScript имеет аналогичный синтаксис для "объектных литералов ", который позволяет создавать свои собственные объекты без каких-либо синтаксических накладных расходов. Давайте перепишем созданный выше объект еще третьим способом, теперь как объектный литерал.
var triangle = {
sideA: 3,
sideB: 4,
sideC: 5,
getArea: function ( a, b, c ) {
// Возвращает площадь треугольника, используя формулу Герона
var semiperimeter = (a + b + c) / 2;
var calculation = semiperimeter * (semiperimeter - a) * (semiperimeter - b) * (semiperimeter - c);
return Math.sqrt( calculation );
}
};
Синтаксис четкий: объектный литерал использует фигурные скобки для обозначения начала и конца объекта, который содержит произвольное количество разделенных запятыми пар "имяСвойства: значениеСвойства". Это делает достаточно простым создание структур для использования в программах без утомительного повторения имени объекта на каждой строке.
Однако надо следить за одной вещью: достаточно распространенная ошибка состоит в размещении запятой после последнего элемента в списке свойств объектного литерала (в данном случае после определения getArea ). Размещайте запятую только между свойствами - дополнительная запятая в конце будет вызывать ошибки. Особенно при повторном обращении к коду для добавления или удаления значений, нужно быть очень осторожным, чтобы сохранить запятые на правильных местах.
На самом деле мы только прикоснулись к поверхности возможностей и ограничений объектов в JavaScript. После прочтения вы должны без проблем создавать свои собственные объекты, добавляя свойства и методы, и использовать их простым способом, используя ссылки на себя. Там существует намного больше, но все это пока не настолько существенно. Эта лекция должна показать начало пути и дать инструменты, необходимые для понимания кода, с которым придется встретиться, когда вы глубже окунетесь в предмет изучения.
· Object Oriented JavaScript (http://nefariousdesigns.co.uk/archive/2006/05/object-oriented-javascript/): Хорошее введение в более сложные объектно-ориентированные концепции в JavaScript.
· Private Members in JavaScript (http://javascript.crockford.com/private.html): Плодотворное обсуждение Дугласом Крокфордом реализации инкапсуляции в JavaScript.
· Scope in JavaScript (http://www.digital-web.com/articles/scope_in_javascript/): Более подробное обсуждение особенностей применения ключевого слова this в различных контекстах.