Clear Up
SharpKit Reference

Base Class

The root of all classes created with Ext.define.

Ext.Base is the building block of all Ext classes. All classes in Ext inherit from Ext.Base. All prototype and static members of this class are inherited by all other classes.

Namespace: Ext

Base Types

Derived Types

Constructors

Methods

Name Description
addMembers(object) Add methods / properties to the prototype of this class.
  Ext.define('My.awesome.Cat', {
            constructor: function() {
            ...
            }
            });
            My.awesome.Cat.addMembers({
            meow: function() {
            alert('Meowww...');
            }
            });
            var kitty = new My.awesome.Cat;
            kitty.meow();
            
addStatics(object) Add / override static properties of this class.
  Ext.define('My.cool.Class', {
            ...
            });
            My.cool.Class.addStatics({
            someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
            method1: function() { ... },    // My.cool.Class.method1 = function() { ... };
            method2: function() { ... }     // My.cool.Class.method2 = function() { ... };
            });
            
callOverridden(object) Call the original method that was previously overridden with override
  Ext.define('My.Cat', {
            constructor: function() {
            alert("I'm a cat!");
            }
            });
            My.Cat.override({
            constructor: function() {
            alert("I'm going to be a cat!");
            this.callOverridden();
            alert("Meeeeoooowwww");
            }
            });
            var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
            // alerts "I'm a cat!"
            // alerts "Meeeeoooowwww"
            

This method has been deprecated

as of 4.1. Use callParent instead.

callParent(object) Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).
  Ext.define('My.Base', {
            constructor: function (x) {
            this.x = x;
            },
            statics: {
            method: function (x) {
            return x;
            }
            }
            });
            Ext.define('My.Derived', {
            extend: 'My.Base',
            constructor: function () {
            this.callParent([21]);
            }
            });
            var obj = new My.Derived();
            alert(obj.x);  // alerts 21
            
This can be used with an override as follows:
  Ext.define('My.DerivedOverride', {
            override: 'My.Derived',
            constructor: function (x) {
            this.callParent([x*2]); // calls original My.Derived constructor
            }
            });
            var obj = new My.Derived();
            alert(obj.x);  // now alerts 42
            
This also works with static methods.
  Ext.define('My.Derived2', {
            extend: 'My.Base',
            statics: {
            method: function (x) {
            return this.callParent([x*2]); // calls My.Base.method
            }
            }
            });
            alert(My.Base.method(10);     // alerts 10
            alert(My.Derived2.method(10); // alerts 20
            
Lastly, it also works with overridden static methods.
  Ext.define('My.Derived2Override', {
            override: 'My.Derived2',
            statics: {
            method: function (x) {
            return this.callParent([x*2]); // calls My.Derived2.method
            }
            }
            });
            alert(My.Derived2.method(10); // now alerts 40
            
create(Object[]) Create a new instance of this Class.
  Ext.define('My.cool.Class', {
            ...
            });
            My.cool.Class.create({
            someConfig: true
            });
            
All parameters are passed to the constructor of the class.
createAlias(object, object) Create aliases for existing prototype methods. Example:
  Ext.define('My.cool.Class', {
            method1: function() { ... },
            method2: function() { ... }
            });
            var test = new My.cool.Class();
            My.cool.Class.createAlias({
            method3: 'method1',
            method4: 'method2'
            });
            test.method3(); // test.method1()
            My.cool.Class.createAlias('method5', 'method3');
            test.method5(); // test.method3() -> test.method1()
            
destroy() Overrides: Ext.AbstractComponent.destroy, Ext.AbstractPlugin.destroy, Ext.layout.Layout.destroy
getInitialConfig(object) Returns the initial configuration passed to constructor when instantiating this class.
getName() Get the current class' name in string format.
  Ext.define('My.cool.Class', {
            constructor: function() {
            alert(this.self.getName()); // alerts 'My.cool.Class'
            }
            });
            My.cool.Class.getName(); // 'My.cool.Class'
            
implement(Object[]) Adds members to class.

This method has been deprecated since 4.1

Use addMembers instead.

initConfig(object) Initialize configuration for this class. a typical example:
  Ext.define('My.awesome.Class', {
            // The default config
            config: {
            name: 'Awesome',
            isAwesome: true
            },
            constructor: function(config) {
            this.initConfig(config);
            }
            });
            var awesome = new My.awesome.Class({
            name: 'Super Awesome'
            });
            alert(awesome.getName()); // 'Super Awesome'
            
override(object) Override members of this class. Overridden methods can be invoked via callParent.
  Ext.define('My.Cat', {
            constructor: function() {
            alert("I'm a cat!");
            }
            });
            My.Cat.override({
            constructor: function() {
            alert("I'm going to be a cat!");
            this.callParent(arguments);
            alert("Meeeeoooowwww");
            }
            });
            var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
            // alerts "I'm a cat!"
            // alerts "Meeeeoooowwww"
            
As of 4.1, direct use of this method is deprecated. Use Ext.define instead:
  Ext.define('My.CatOverride', {
            override: 'My.Cat',
            constructor: function() {
            alert("I'm going to be a cat!");
            this.callParent(arguments);
            alert("Meeeeoooowwww");
            }
            });
            
The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).

This method has been deprecated since 4.1.0

Use Ext.define instead

statics() Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time
  Ext.define('My.Cat', {
            statics: {
            totalCreated: 0,
            speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
            },
            constructor: function() {
            var statics = this.statics();
            alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
            // equivalent to: My.Cat.speciesName
            alert(this.self.speciesName);   // dependent on 'this'
            statics.totalCreated++;
            },
            clone: function() {
            var cloned = new this.self;                      // dependent on 'this'
            cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName
            return cloned;
            }
            });
            Ext.define('My.SnowLeopard', {
            extend: 'My.Cat',
            statics: {
            speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
            },
            constructor: function() {
            this.callParent();
            }
            });
            var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'
            var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
            var clone = snowLeopard.clone();
            alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
            alert(clone.groupName);                 // alerts 'Cat'
            alert(My.Cat.totalCreated);             // alerts 3
            

Properties

Name Description
className Defaults to: "Ext.Base"
configMap Defaults to: {}
initConfigList Defaults to: []
initConfigMap Defaults to: {}
isInstance Defaults to: true
self Get the reference to the current class from which this object was instantiated. Unlike statics, this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics for a detailed comparison
  Ext.define('My.Cat', {
            statics: {
            speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
            },
            constructor: function() {
            alert(this.self.speciesName); // dependent on 'this'
            },
            clone: function() {
            return new this.self();
            }
            });
            Ext.define('My.SnowLeopard', {
            extend: 'My.Cat',
            statics: {
            speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
            }
            });
            var cat = new My.Cat();                     // alerts 'Cat'
            var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'
            var clone = snowLeopard.clone();
            alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'
            
© Copyright 2005-2011 SharpKit. All rights reserved.