Thanks Alexey for your detailed explanation of the key word this.
@ Keve
Sure you are able to declare local variables with function in qooxdoo class,
however. To be able to access parent scope you are able to do like this: (just
declare a local variable in the function which includes your function)
var that = this;
var myDebug = function(p_myString) {
that.debug(p_myString);
return true;
};
Or if you want to change the function scope / context totally: (use the bind
function, qooxdoo provides an polyfill for bind to support older browsers)
var myDebug = function(p_myString) {
this.debug(p_myString);
return true;
}.bind(this);
But my advice to you would be to declare any function in the members section of
qooxdoo classes. If you do so the scope is "normally" set to the class
instance, expect calling member functions through a callback mechanism, in that
case you have to set the scope manually, e.g. this.addListener("appear",
this._onAppear, this);
But you could re structure your code in such a way:
...
members :
{
main: function() {
this.myDebug("Indirect debug via myDebug().");
},
myDebug : function(p_myString) {
this.debug(p_myString);
return true;
}
}
...
Hope could help a bit
Gruß
Mustafa Sak
Applications & Integration
1&1 Internet AG
Ernst-Frey-Straße 10
DE-76135 Karlsruhe
-----Ursprüngliche Nachricht-----
Von: alexey.zakharenkov [mailto:[email protected]]
Gesendet: Donnerstag, 27. Februar 2014 07:36
An: [email protected]
Betreff: Re: [qooxdoo-devel] Newbie question, calling this.debug() from my
function.
"this" keyword has different meaning in different points of the script: they
say it "depends on context". this.debug() will work only where "this" refers to
an instance of qx.core.Object or derived class, or any class that includes
qx.core.MLogging mixin.
Explore what is "this" (by calling alert(this), e.g.) at different lines of
your program, and you'll see it's not the same.
For the debug() function to work anywhere in the script, use static method
qx.log.Logger.debug()
--
Regards,
Alexey
Keve Nagy wrote
> Good Evening Everyone!
> I believe this is a newbie question.
> I very much like using the this.debug() call during development. But
> when I try to call it from any function I define inside my qx
> application code, it doesn't work. It resolves as "undefined".
> Example:
>
> this.debug("Debug text directly using this.debug()");
> //
> var myAlert = function(p_myString) {
> alert(p_myString);
> return true;
> }
> //
> myAlert("Indirectly calling alert() from myAlert().");
> //
> var myDebug = function(p_myString) {
> this.debug(p_myString);
> return true;
> }
> //
> myDebug("Indirect debug via myDebug().");
>
> The direct call on line #1 works, debug message shows up in the console.
> myAlert gets defined fine, calling myAlert works fine and shows the
> pop-up window.
> Script fails to load during the definition of myDebug, complaining
> that this.debug is "undefined".
> I also tried replacing this.debug() with
> myapplicationnamehere.Application.debug(), also fails.
>
> How do I call the debug() function from inside my own function?
> Or -if that is what I do wrong- how do I define my own function
> differently to be able to call this.debug() from inside of it?
>
> Regards,
> Keve Nagy * Debrecen * Hungary
>
>
> ----------------------------------------------------------------------
> -------- Flow-based real-time traffic analytics software. Cisco
> certified tool.
> Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> Customize your own dashboards, set traffic alerts and generate reports.
> Network behavioral analysis & security monitoring. All-in-one tool.
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.
> clktrk _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
--
View this message in context:
http://qooxdoo.678.n2.nabble.com/Newbie-question-calling-this-debug-from-my-function-tp7585391p7585392.html
Sent from the qooxdoo mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize
your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel