| Summary: Конструирование классов |
| Author: Maxence Delannoy, Андрей Ткаченко (перевод) |
| Published: 16 апреля 2008 |
| Ext Version: 1.1 |
Languages: English Chinese French
|
Javascript отличается от других объектно-ориентированных языков, таких как: C++, Java или PHP. В его основе лежит концепция, называемая прототип, в отличае от концепции класса в других языках. Важно отметить, что термин класс встречается часто даже не смотря на то, что это не всегда корректно. Видим класс, думаем объект.
Contents |
Создание объекта Создать объект в Javascript очень просто:
var myObject = { aVar: 15, aMethod: function() { alert("Я метод объекта myObject." + "aVar: " + this.aVar); } }
Для создания объекта не требуется задавать определение и экземпляр класса. Здесь используется инициализатор объекта. Все это великолепно работает, когда мы имеем дело с единичным объектом. Если же их несколько одного типа, то используется функция-конструктор и ключевое слово new.
Использование Функции Конструктора В Javascript нет понятия классов, но есть конструкторы. Вы пишете функцию, а затем создаете объект при помощи ключевого слова new.
// Сначала мы создадим пустой конструктор для нашего класса function myClass() { this.aVar = 15; this.aMethod = function() { alert("Я метод объекта myObject."); } } // Создадим экземпляр нашего класса var A = new myClass(); // Отобразим число 15 alert(A.aVar); // Второй экземпляр var B = new myClass();
Снимок окна FireFox + Firebug Нажмите на кнопку Run для вывода сообщения.
Общие методы Все экземпляры любого класса разделяют один общий объект прототип. Это то место, куда должны помещаются функции и общие значения:
// Определяем метод объекта прототипа Ext.apply(myClass.prototype, { defaultClassName: "x-widget-class", sharedMethod: function() { alert("Я общий метод") } }); // Отобразим наше сообщение A.sharedMethod(); // То же сообщение B.sharedMethod();
В определении myClass не существует метода, именуемого sharedMethod. Javascript ищет метод с этим именем в объекте прототипе и вызывает его, если он существует.