Ext JS - Learning Center

Manual:Intro:Class Design ru

From Learn About the Ext JavaScript Library

Jump to: navigation, search
Summary: Конструирование классов
Author: Maxence Delannoy, Андрей Ткаченко (перевод)
Published: 16 апреля 2008
Ext Version: 1.1
Languages: en.png English cn.png Chinese fr.png French

kr.png Korean ru.png Русский

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 для вывода сообщения.

Image:Ext20-manual-constructor.jpg

Общие методы

Все экземпляры любого класса разделяют один общий объект прототип. Это то место, куда должны помещаются функции и общие значения:

// Определяем метод объекта прототипа
Ext.apply(myClass.prototype, {
 
    defaultClassName: "x-widget-class",
 
    sharedMethod: function() { alert("Я общий метод") }
});
 
//  Отобразим наше сообщение
A.sharedMethod();
 
// То же сообщение
B.sharedMethod();

В определении myClass не существует метода, именуемого sharedMethod. Javascript ищет метод с этим именем в объекте прототипе и вызывает его, если он существует.

  • This page was last modified 20:43, 16 April 2008.
  • This page has been accessed 964 times.