Skip to content
Grigoriev Oleg edited this page Mar 25, 2013 · 3 revisions

Создание и инстанцирование класса

go.Class([parents, ] props)

go.Class([parent, ] props)

go.Class(props)

  • parents {mixed} - родительский класс или список родительских классов. Необязательный параметр. Подробности в разделе "наследование".
  • props {Dict} - набор свойств и методов класса.
  • :return {Function} - объект класса (на самом деле функция-конструктор).

Пример

var ExampleClass = go.Class({

    'setValue': function (value) {
        this.value = value;
    },
    
    'getValue': function (value) {
        return this.value;
    }
    
});

var instanceOne = new ExampleClass();
var instanceTwo = new ExampleClass();

instanceOne.setValue("one");
instanceTwo.setValue("two");

instanceOne.getValue(); // one
instanceTwo.getValue(); // two

В примере создаётся класс ExampleClass с двумя методами.

Два его экземпляра instanceOne и instanceTwo обладают общим поведением, но каждый из них работает со своими данными.

Реализация

ExampleClass является обычной функцией-конструктором, а экземпляры разделяют общий прототип.

Работает instanceof:

instanceOne instanceof ExampleClass; // true
instanceTwo instanceof ExampleClass; // true

Так же сохраняется цепочка constructor.prototype хотя go.Class предоставляет свои способы доступа к предкам.

Clone this wiki locally