Конструкторы
Конструкторы определяют метод и логику создания нового объекта. Для этого используется секция constructor
:
Ext.define('Classes.Person', { name: 'Eugene', surname : 'Popov', // конструктор объекта constructor: function(name, surname) { if (name && surname) { this.name = name; this.surname = surname; } }, getinfo: function() { alert("Полное имя : " + this.name + " " + this.surname); } });
В данном случае конструктор представляет безымянную функцию, которая принимает два параметра - имя и фамилию. Функция проверяет, определены ли значения для параметров, и если определены - передает их в качестве значений свойств для нового объекта.
Затем мы можем использовать конструктор для создания нового объекта с помощью функции Ext.create
или выражения new
,
в которые передаем значения:
// в данном случае в конструктор передаются значения null // значения передаются после имени класса // поэтому здесь будут выведены значения по умолчанию var eugene = Ext.create('Classes.Person'); eugene.getinfo(); // передаем в конструктор значения 'Anders' и 'Heilsberg' eugene = Ext.create('Classes.Person', 'Anders', 'Heilsberg'); eugene.getinfo(); // передаем в конструктор значения 'Bill' и 'Gates' eugene = new Classes.Person ('Bill', 'Gates'); eugene.getinfo();
Создание объекта с помощью Ext.create
и с помощью слова new
данном случае эквивалентны. Если в функции Ext.create
мы не передаем значения, кроме имени класса, тогда используются значения по умолчанию.