Программирование - это просто
Advertisement
Главная arrow Web-программирование arrow Уроки Java Script arrow Web-программирование: «Java Script(JS): Библиотека визуальных компонентов. Методы базового класса
01.05.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Web-программирование: «Java Script(JS): Библиотека визуальных компонентов. Методы базового класса Печать E-mail
Автор megabax   
27.05.2011 г.
Урок 13. Управление шрифтами в CSS New Page 1

Web-программирование: «Java Script(JS): Библиотека визуальных компонентов. Методы базового класса

 

В на позапрошлом вы уже познакомились с назначением методов базового класса библиотеки визуальных компонентов. Сегодня мы разберем их реализацию И так, начнем с метода _is_child:

 

function CXBrBaseInterfaceClass_is_child(a_class) {

    var str=typeof(a_class)

    if(str.toLowerCase()=="string") n_class=a_class; else n_class=a_class._get_class_name()

    return this._hierarchy_classes._search(n_class,this._hierarchy_classes.length-1)>-1

}

 

Как вы уже знаете, этот метод определяет, является ли класс дочерним от заданного. Как он это делает? Сначала узнаем тип переданного аргумента:

 

var str=typeof(a_class)

 

Если это строка, то проверяемый класс у нас этот аргумент, иначе это объект и нам надо взять имя класса этого объекта:

if(str.toLowerCase()=="string") n_class=a_class; else n_class=a_class._get_class_name()

  

ну а потом возвращаем  результат поиска в массиве иерархии классов:

return this._hierarchy_classes._search(n_class,this._hierarchy_classes.length-1)>-1

 

обратите внимание на метод _search. У стандартного объекта Array его нету. Поэтому в модуле XBrGlobalProc,js мы назначаем ему прототип:

// **************** Добавление прототипов стандартных классов *****************

Array.prototype._search=function Array_search(ob,len_arr) {

    if(len_arr==null) var l=this.length; else var l=len_arr

    for (var i = 0; i<l; i++) {

        if(this[i]==ob) return i;

        }

    return -1

}

 

В добавленном методе _search мы реализуем поиск в цикле. Один из аргументов данной функции - длина, в которой мы ищем. Тоесть, у нас массив имеет длину 100 элементов, но мы ищем только в 50-ти первых, например.  Если параметр опущен - ищем во всем массиве.

 

Разберем еще один метод _is_child_or_self:

function CXBrBaseInterfaceClass_is_child_or_self(a_class) {

    var str=typeof(a_class)

    if(str.toLowerCase()=="string") n_class=a_class; else n_class=a_class._get_class_name()

    return this._hierarchy_classes._search(n_class,null)>-1

}

 

Работает он аналогично, но, в отличии от _is_child поиск происходит во всем массиве, тоесть, проверка включает проверку самого себя, а в методе  _is_child - не включает.

 

Напоследок посмотрим как реализованы методы _is_parent и _is_parent_or_self:

function CXBrBaseInterfaceClass_is_parent_or_self(a_class) {

    return a_class._hierarchy_classes._search(this._get_class_name(),null)>-1

}

 

function CXBrBaseInterfaceClass_is_parent(a_class) {

    return a_class._hierarchy_classes._search(this._get_class_name(),a_class._hierarchy_classes.length-1)>-1

}

 

 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги