Touch 2.0.2 Sencha Docs

Ext.data.association.HasOne

Alternate names

Ext.data.HasOneAssociation

Hierarchy

Ext.Base
Ext.data.association.Association
Ext.data.association.HasOne

Files

Represents a one to one association with another model. The owner model is expected to have a foreign key which references the primary key of the associated model:

Ext.define('Person', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            { name: 'id', type: 'int' },
            { name: 'name', type: 'string' },
            { name: 'address_id', type: 'int'}
        ],

        // we can use the hasOne shortcut on the model to create a hasOne association
        associations: { type: 'hasOne', model: 'Address' }
    }
});

Ext.define('Address', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            { name: 'id', type: 'int' },
            { name: 'number', type: 'string' },
            { name: 'street', type: 'string' },
            { name: 'city', type: 'string' },
            { name: 'zip', type: 'string' },
        ]
    }
});

In the example above we have created models for People and Addresses, and linked them together by saying that each Person has a single Address. This automatically links each Person to an Address based on the Persons address_id, and provides new functions on the Person model:

Generated getter function

The first function that is added to the owner model is a getter function:

var person = Ext.create('Person', {
    id: 100,
    address_id: 20,
    name: 'John Smith'
});

person.getAddress(function(address, operation) {
    // do something with the address object
    alert(address.get('id')); // alerts 20
}, this);

The getAddress function was created on the Person model when we defined the association. This uses the Persons configured proxy to load the Address asynchronously, calling the provided callback when it has loaded.

The new getAddress function will also accept an object containing success, failure and callback properties - callback will always be called, success will only be called if the associated model was loaded successfully and failure will only be called if the associatied model could not be loaded:

person.getAddress({
    reload: true, // force a reload if the owner model is already cached
    callback: function(address, operation) {}, // a function that will always be called
    success : function(address, operation) {}, // a function that will only be called if the load succeeded
    failure : function(address, operation) {}, // a function that will only be called if the load did not succeed
    scope   : this // optionally pass in a scope object to execute the callbacks in
});

In each case above the callbacks are called with two arguments - the associated model instance and the operation object that was executed to load that instance. The Operation object is useful when the instance could not be loaded.

Once the getter has been called on the model, it will be cached if the getter is called a second time. To force the model to reload, specify reload: true in the options object.

Generated setter function

The second generated function sets the associated model instance - if only a single argument is passed to the setter then the following two calls are identical:

// this call...
person.setAddress(10);

// is equivalent to this call:
person.set('address_id', 10);

An instance of the owner model can also be passed as a parameter.

If we pass in a second argument, the model will be automatically saved and the second argument passed to the owner model's save method:

person.setAddress(10, function(address, operation) {
    // the address has been saved
    alert(address.get('address_id')); //now alerts 10
});

//alternative syntax:
person.setAddress(10, {
    callback: function(address, operation), // a function that will always be called
    success : function(address, operation), // a function that will only be called if the load succeeded
    failure : function(address, operation), // a function that will only be called if the load did not succeed
    scope   : this //optionally pass in a scope object to execute the callbacks in
})

Customisation

Associations reflect on the models they are linking to automatically set up properties such as the primaryKey and foreignKey. These can alternatively be specified:

Ext.define('Person', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            // ...
        ],

        associations: [
            { type: 'hasOne', model: 'Address', primaryKey: 'unique_id', foreignKey: 'addr_id' }
        ]
    }
});

Here we replaced the default primary key (defaults to 'id') and foreign key (calculated as 'address_id') with our own settings. Usually this will not be needed.

Available since: 2.0.0

Defined By

Config options

The full class name or reference to the class that the ownerModel is being associated with. ...

The full class name or reference to the class that the ownerModel is being associated with. This is a required configuration on every association.

Available since: 1.1.0

The name for the associated model. ...

The name for the associated model. This defaults to the last part of the class name of the associatedModel.

Available since: 2.0.0

The name of the property in the data to read the association from. ...

The name of the property in the data to read the association from. Defaults to the associatedName plus _id.

Available since: 2.0.0

Ext.data.association.HasOne
view source
: String
The name of the foreign key on the owner model that links it to the associated model. ...

The name of the foreign key on the owner model that links it to the associated model. Defaults to the lowercased name of the associated model plus "_id", e.g. an association with a model called Person would set up a address_id foreign key.

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'address_id'], // refers to the id of the address object
    hasOne: 'Address'
});

Ext.define('Address', {
    extend: 'Ext.data.Model',
    fields: ['id', 'number', 'street', 'city', 'zip'],
    belongsTo: 'Person'
});
var Person = new Person({
    id: 1,
    name: 'John Smith',
    address_id: 13
}, 1);
person.getAddress(); // Will make a call to the server asking for address_id 13

Available since: 2.0.0

Ext.data.association.HasOne
view source
: String
The name of the getter function that will be added to the local model's prototype. ...

The name of the getter function that will be added to the local model's prototype. Defaults to 'get' + the name of the foreign model, e.g. getAddress

Available since: 2.0.0

Ext.data.association.HasOne
view source
: Objectprivate

Available since: 2.0.0

The full class name or reference to the class that owns this associations. ...

The full class name or reference to the class that owns this associations. This is a required configuration on every association.

Available since: 1.1.0

The name for the owner model. ...

The name for the owner model. This defaults to the last part of the class name of the ownerModel.

Available since: 2.0.0

The name of the primary key on the associated model. ...

The name of the primary key on the associated model. Defaults to 'id'. In general this will be the Ext.data.Model.idProperty of the Model.

Defaults to: 'id'

Available since: 1.1.0

A special reader to read associated data

A special reader to read associated data

Available since: 2.0.0

Ext.data.association.HasOne
view source
: String
The name of the setter function that will be added to the local model's prototype. ...

The name of the setter function that will be added to the local model's prototype. Defaults to 'set' + the name of the foreign model, e.g. setAddress

Available since: 2.0.0

The type configuration can be used when creating associations using a configuration object. ...

The type configuration can be used when creating associations using a configuration object. Use 'hasMany' to create a HasMany association

    associations: [{
        type: 'hasMany',
        model: 'User'
    }]

Available since: 2.0.0

Properties

Defined By

Instance properties

Get the reference to the current class from which this object was instantiated. ...

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); / dependentOL 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'

Available since: 2.0.0

Defined By

Static properties

...

Defaults to: []

Available since: 2.0.0

Methods

Defined By

Instance methods

Creates the Association object. ...

Creates the Association object.

Available since: 1.1.0

Parameters

  • config : Object (optional)

    Config object.

Returns

Fires

    ...

    Available since: 2.0.0

    Parameters

    ...

    Available since: 2.0.0

    Parameters

    Fires

      Ext.data.association.HasOne
      view source
      ( associationKey )private
      ...

      Available since: 2.0.0

      Parameters

      Fires

        Ext.data.association.HasOne
        view source
        ( foreignKey )private
        ...

        Available since: 2.0.0

        Parameters

        Fires

          Ext.data.association.HasOne
          view source
          ( getterName )private
          ...

          Available since: 2.0.0

          Parameters

          Fires

            Ext.data.association.HasOne
            view source
            ( instanceName )private
            ...

            Available since: 2.0.0

            Parameters

            Fires

              ...

              Available since: 2.0.0

              Parameters

              Fires

                ...

                Available since: 2.0.0

                Parameters

                ...

                Available since: 2.0.0

                Parameters

                Fires

                  ...

                  Available since: 2.0.0

                  Parameters

                  Fires

                    Ext.data.association.HasOne
                    view source
                    ( setterName )private
                    ...

                    Available since: 2.0.0

                    Parameters

                    Fires

                      Call the original method that was previously overridden with override Ext.define('My.Cat', { constructor: functi...

                      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!");
                      
                              var instance = this.callOverridden();
                      
                              alert("Meeeeoooowwww");
                      
                              return instance;
                          }
                      });
                      
                      var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                                                // alerts "I'm a cat!"
                                                // alerts "Meeeeoooowwww"
                      

                      Available since: 2.0.0

                      Parameters

                      • args : Array/Arguments

                        The arguments, either an array or the arguments object from the current method, for example: this.callOverridden(arguments)

                      Returns

                      • Object

                        Returns the result of calling the overridden method

                      Call the "parent" method of the current method. ...

                      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
                      

                      Available since: 2.0.0

                      Parameters

                      • args : Array/Arguments

                        The arguments, either an array or the arguments object from the current method, for example: this.callParent(arguments)

                      Returns

                      • Object

                        Returns the result of calling the parent method

                      Ext.data.association.HasOne
                      view source
                      ( ) : Functionprivate
                      Returns a getter function to be placed on the owner model's prototype. ...

                      Returns a getter function to be placed on the owner model's prototype. We cache the loaded instance the first time it is loaded so that subsequent calls to the getter always receive the same reference.

                      Available since: 2.0.0

                      Returns

                      Fires

                        Ext.data.association.HasOne
                        view source
                        ( ) : Functionprivate
                        Returns a setter function to be placed on the owner model's prototype ...

                        Returns a setter function to be placed on the owner model's prototype

                        Available since: 2.0.0

                        Returns

                        Fires

                          Returns the value of associatedModel. ...

                          Returns the value of associatedModel.

                          Available since: 2.0.0

                          Returns

                          Returns the value of associatedName. ...

                          Returns the value of associatedName.

                          Available since: 2.0.0

                          Returns

                          Returns the value of associationKey. ...

                          Returns the value of associationKey.

                          Available since: 2.0.0

                          Returns

                          ...

                          Available since: 2.0.0

                          Parameters

                          ...

                          Available since: 2.0.0

                          Ext.data.association.HasOne
                          view source
                          ( ) : String
                          Returns the value of foreignKey. ...

                          Returns the value of foreignKey.

                          Available since: 2.0.0

                          Returns

                          Ext.data.association.HasOne
                          view source
                          ( ) : String
                          Returns the value of getterName. ...

                          Returns the value of getterName.

                          Available since: 2.0.0

                          Returns

                          Returns the initial configuration passed to constructor. ...

                          Returns the initial configuration passed to constructor.

                          Available since: 2.0.0

                          Parameters

                          • name : String (optional)

                            When supplied, value for particular configuration option is returned, otherwise the full config object is returned.

                          Returns

                          Ext.data.association.HasOne
                          view source
                          ( ) : Object
                          Returns the value of instanceName. ...

                          Returns the value of instanceName.

                          Available since: 2.0.0

                          Returns

                          Ext.data.association.HasOne
                          view source
                          ( )private
                          ...

                          Available since: 2.0.0

                          Fires

                            Returns the value of name. ...

                            Returns the value of name.

                            Available since: 2.0.0

                            Returns

                            Returns the value of ownerModel. ...

                            Returns the value of ownerModel.

                            Available since: 2.0.0

                            Returns

                            Returns the value of ownerName. ...

                            Returns the value of ownerName.

                            Available since: 2.0.0

                            Returns

                            Returns the value of primaryKey. ...

                            Returns the value of primaryKey.

                            Available since: 2.0.0

                            Returns

                            Returns the value of reader. ...

                            Returns the value of reader.

                            Available since: 2.0.0

                            Returns

                            Ext.data.association.HasOne
                            view source
                            ( ) : String
                            Returns the value of setterName. ...

                            Returns the value of setterName.

                            Available since: 2.0.0

                            Returns

                            Returns the value of type. ...

                            Returns the value of type.

                            Available since: 2.0.0

                            Returns

                            ...

                            Available since: 2.0.0

                            Parameters

                            ( instanceConfig ) : Objectchainableprotected
                            Initialize configuration for this class. ...

                            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'
                            

                            Available since: 2.0.0

                            Parameters

                            Returns

                            • Object

                              mixins The mixin prototypes as key - value pairs

                            Fires

                              Convert old properties in data into a config object ...

                              Convert old properties in data into a config object

                              Available since: 2.0.0

                              Parameters

                              ( names, callback, scope )private
                              ...

                              Available since: 2.0.0

                              Parameters

                              Ext.data.association.HasOne
                              view source
                              ( record, reader, associationData )private
                              Read associated data ...

                              Read associated data

                              Available since: 2.0.0

                              Parameters

                              Fires

                                Sets the value of associatedModel. ...

                                Sets the value of associatedModel.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of associatedName. ...

                                Sets the value of associatedName.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of associationKey. ...

                                Sets the value of associationKey.

                                Available since: 2.0.0

                                Parameters

                                ( config, applyIfNotSet ) : Ext.Basechainableprivate
                                ...

                                Available since: 2.0.0

                                Parameters

                                Returns

                                Ext.data.association.HasOne
                                view source
                                ( foreignKey )
                                Sets the value of foreignKey. ...

                                Sets the value of foreignKey.

                                Available since: 2.0.0

                                Parameters

                                Ext.data.association.HasOne
                                view source
                                ( getterName )
                                Sets the value of getterName. ...

                                Sets the value of getterName.

                                Available since: 2.0.0

                                Parameters

                                Ext.data.association.HasOne
                                view source
                                ( instanceName )
                                Sets the value of instanceName. ...

                                Sets the value of instanceName.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of name. ...

                                Sets the value of name.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of ownerModel. ...

                                Sets the value of ownerModel.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of ownerName. ...

                                Sets the value of ownerName.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of primaryKey. ...

                                Sets the value of primaryKey.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of reader. ...

                                Sets the value of reader.

                                Available since: 2.0.0

                                Parameters

                                Ext.data.association.HasOne
                                view source
                                ( setterName )
                                Sets the value of setterName. ...

                                Sets the value of setterName.

                                Available since: 2.0.0

                                Parameters

                                Sets the value of type. ...

                                Sets the value of type.

                                Available since: 2.0.0

                                Parameters

                                Get the reference to the class from which this object was instantiated. ...

                                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
                                

                                Available since: 2.0.0

                                Returns

                                ( associatedModel, oldAssociatedModel )private
                                ...

                                Available since: 2.0.0

                                Parameters

                                Fires

                                  Ext.data.association.HasOne
                                  view source
                                  ( foreignKey, oldForeignKey )private
                                  ...

                                  Available since: 2.0.0

                                  Parameters

                                  Fires

                                    Ext.data.association.HasOne
                                    view source
                                    ( getterName, oldGetterName )private
                                    ...

                                    Available since: 2.0.0

                                    Parameters

                                    Fires

                                      ...

                                      Available since: 2.0.0

                                      Parameters

                                      Fires

                                        ...

                                        Available since: 2.0.0

                                        Parameters

                                        Fires

                                          Ext.data.association.HasOne
                                          view source
                                          ( setterName, oldSetterName )private
                                          ...

                                          Available since: 2.0.0

                                          Parameters

                                          Fires

                                            Defined By

                                            Static methods

                                            ( config, fullMerge )privatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( members )chainableprivatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( name, member )chainableprivatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( members )chainablestatic
                                            Add methods / properties to the prototype of this class. ...

                                            Add methods / properties to the prototype of this class.

                                            Ext.define('My.awesome.Cat', {
                                                constructor: function() {
                                                    ...
                                                }
                                            });
                                            
                                             My.awesome.Cat.implement({
                                                 meow: function() {
                                                    alert('Meowww...');
                                                 }
                                             });
                                            
                                             var kitty = new My.awesome.Cat;
                                             kitty.meow();
                                            

                                            Available since: 2.0.0

                                            Parameters

                                            ( members ) : Ext.Basechainablestatic
                                            Add / override static properties of this class. ...

                                            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() { ... };
                                            });
                                            

                                            Available since: 2.0.0

                                            Parameters

                                            Returns

                                            ( xtype )chainableprivatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( fromClass, members ) : Ext.Basechainableprivatestatic
                                            Borrow another class' members to the prototype of this class. ...

                                            Borrow another class' members to the prototype of this class.

                                            Ext.define('Bank', {
                                                money: '$$$',
                                                printMoney: function() {
                                                    alert('$$$$$$$');
                                                }
                                            });
                                            
                                            Ext.define('Thief', {
                                                ...
                                            });
                                            
                                            Thief.borrow(Bank, ['money', 'printMoney']);
                                            
                                            var steve = new Thief();
                                            
                                            alert(steve.money); // alerts '$$$'
                                            steve.printMoney(); // alerts '$$$$$$$'
                                            

                                            Available since: 2.0.0

                                            Parameters

                                            • fromClass : Ext.Base

                                              The class to borrow members from

                                            • members : Array/String

                                              The names of the members to borrow

                                            Returns

                                            ( args )privatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( alias, origin )static
                                            Create aliases for existing prototype methods. ...

                                            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()
                                            

                                            Available since: 2.0.0

                                            Parameters

                                            ( parent )privatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            Get the current class' name in string format. ...

                                            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'
                                            

                                            Available since: 2.0.0

                                            Returns

                                            ...

                                            Available since: 2.0.0

                                            ( name, mixinClass )privatestatic
                                            Used internally by the mixins pre-processor ...

                                            Used internally by the mixins pre-processor

                                            Available since: 2.0.0

                                            Parameters

                                            ( fn, scope )chainableprivatestatic
                                            ...

                                            Available since: 2.0.0

                                            Parameters

                                            ( members ) : Ext.Basechainabledeprecatedstatic
                                            Override members of this class. ...

                                            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!");
                                            
                                                    var instance = this.callParent(arguments);
                                            
                                                    alert("Meeeeoooowwww");
                                            
                                                    return instance;
                                                }
                                            });
                                            
                                            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!");
                                            
                                                    var instance = this.callParent(arguments);
                                            
                                                    alert("Meeeeoooowwww");
                                            
                                                    return instance;
                                                }
                                            });
                                            

                                            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).

                                            Available since: 2.0.0

                                            This method has been deprecated since 4.1.0

                                            Please use Ext.define instead

                                            Parameters

                                            • members : Object

                                              The properties to add to this class. This should be specified as an object literal containing one or more properties.

                                            Returns

                                            ...

                                            Available since: 2.0.0