Как и большенство «взрослых» языков JavaScript может быт объектно-ориентированным. В нем так же существуют обекты, пространства имен и многие другие полезные вещи, которых, казалось бы, так нехватает в клиентских скриптовых языках.
JavaScript объектно-ориентированное программирование
Как и большенство «взрослых» языков JavaScript может быт объектно-ориентированным. В нем так же существуют обекты, пространства имен и многие другие полезные вещи, которых, казалось бы, так нехватает в клиентских скриптовых языках. Хотя, к примеру, в VBScript существуют способы создавать классы, но здесь есть небольшое ограничение: только IE!
Цель этой статьи - суммировать и доступно преподнести все знания собранные со всего интернета, плюс поделиться немного своим собственным опытом.
Начнем с простого...
Классы в JavaScript
Создание простейшего класса
Как создать "класс" в JavaScript'е? В JavaScript не существует такого понятия как "класс", но есть возможность создавать объекты, которые будут вести себя аналогично классам. Все когда-нибудь, но пользовались ссылкой на обект, когда писаль обработчики событий:
<a href="#" onclick="alert(this.innerHTML)">Простая ссылка</a>
Щелчек мыши на такой ссылке приведет к тому, что появится окошко с надписью "Простая ссылка". Всем это известно, поэтому рассказывать что и почему не стану (если нет - купите книжку про основы JavaScript:), хотя некоторые моменты уточню дальше.
Так вот на это действие слова this не заканчивается, но, по большому счету, для создания класслв больше ничего особого и не понадобится. Вот пример описания простейшего класса:
function SimpleClass(){
this.SomeMethod = "Some Method Value";
}
Вот, собственно, и все. :) Конечно, если написать что-то наподобие:
var x = SimpleClass();
то, в таком случае Вы ничего не получите. Для создания экземпляра класса необходимо использовать ключевое слово new, как, к примеру, при создании массивов var arr = new Array();. Тогда, в результате, у Вас должно получиться что-то наподобие такого:
function SimpleClass(){
this.SomeMethod = "Some Method Value";
}
var x = new SimpleClass();
alert( x.SomeMethod ); // появится alert с текстом "Some Method Value"