Объектно-ориентированный дизайн ExtJS
Октябрь 17th, 2008Одна из задач, которую ставили себе разработчики библиотеки ExtJS при ее проектировании, была возможность сосуществования с другими JavaScript-библиотеками и фреймворками. Для этого были добавлены удобные методы, помогающие разработчику создавать, наследовать и сопровождать код различных классов. Несмотря на то, что все они были специально созданы для работы с компонентами ExtJS, их можно использовать с любыми объектами JavaScript, в том числе в проектах, не задействующих визуальные компоненты.
Ext.namespace
Синтаксис: Ext.namespace( String namespace1, String namespace2, String etc ) : void
В языке JavaScript пространство имен само является объектом, содержащим список определений других объектов. Правильное использование пространств имен гарантирует, что ваш код не будет конфликтовать с другими библиотеками. Однако, чем больше становится кода в библиотеке, тем глубже иерархия имен и такие классы как Ext.ux.graphing.GraphPanel перестают быть редкостью. В ExtJS существует метод Ext.namespace, который позволяет определить все пространства имен за один вызов, уменьшая не только затраты на поддержку кода, но и сокращая его размер.
Традиционный код JavaScript, создающий иерархию пространства имен, выглядит следующим образом:
var Ext = Ext || {}; Ext.ux = Ext.ux || {}; Ext.ux.graphing = Ext.ux.graphing || {}; Ext.ux.soundFx = Ext.ux.soundFx || {}; Ext.ux.maps = Ext.ux.maps || {};
Того же результата можно достичь вызовом всего одного метода:
Ext.namespace("Ext.ux.graphing", "Ext.ux.soundFx", "Ext.ux.maps");
Ext.override
Синтаксис: Ext.override( Object origclass, Object overrides ) : void
JavaScript очень гибкий язык, и переопределение метода в нем выполняется простым переназначением его объекта другой функции: Read the rest of this entry »











