-
6 Dec 2012 4:01 AM #1
Answered: Extending class: set Scope when calling parent's methods
Answered: Extending class: set Scope when calling parent's methods
Hey,
Why is the output of '1: ' not 'Parent'? How can I set the scope right?
I can't use method '2:' because then I don't have access to any of the Refs neither!
Code:Ext.define('Parent', { extend: 'Ext.app.Controller', getName: function() { return Ext.getClassName(this); } }Code:Ext.define('Child', { extend: 'Parent', doSomething: function() { console.log( '1: ' + this.getName() ); console.log( '2: ' + this.superclass.getName() ); } }
-
Best Answer Posted by mitchellsimoens
This is how JavaScript works, the scope is the current scope which is the Child unless you change it with call or apply.
Code:fn.call(scope, arg1, arg2); fn.apply(scope, [arg1, arg2])
-
8 Dec 2012 5:55 AM #2Sencha - Senior Forum Manager
- Join Date
- Mar 2007
- Location
- St. Louis, MO
- Posts
- 33,714
- Vote Rating
- 436
- Answers
- 3113
This is how JavaScript works, the scope is the current scope which is the Child unless you change it with call or apply.
Code:fn.call(scope, arg1, arg2); fn.apply(scope, [arg1, arg2])
Mitchell Simoens @SenchaMitch
Sencha Inc, Senior Forum Manager
________________
http://www.JSONPLint.com - Source to lint your JSONP!
Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
https://github.com/mitchellsimoens
Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/
Need more help with your app? Hire Sencha Services services@sencha.com
Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is almost in print!
When posting code, please use BBCode's CODE tags.


Reply With Quote