You can do two things. Use
bind<https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind>
:

DescriptorValue.prototype.parse = function() {

    var currentModuleName = GLOBALS.PARSERSDIR+this.parameters.name+'.js';
    fs.exists(currentModuleName, function(exists) {
        if (exists) {
            var currentparser = require(currentModuleName);
            currentparser.parse(this);
        } else {
            //getValue();
        }
    }.bind(this));
}

or declare a new variable and store the value of this:

DescriptorValue.prototype.parse = function() {
    var currentModuleName = GLOBALS.PARSERSDIR+this.parameters.name+'.js';
    var self = this;

    fs.exists(currentModuleName, function(exists) {
        if (exists) {
            var currentparser = require(currentModuleName);
            currentparser.parse(self);
        } else {
            //getValue();
        }
    });
};

either approach is okay for this case.



2013/3/28 Perrier <[email protected]>

> Hi,
>
> I have a class (DescriptorValue) and its following function:
>
> DescriptorValue.prototype.parse = function() {
> var currentModuleName = GLOBALS.PARSERSDIR+this.parameters.name+'.js';
> fs.exists(currentModuleName, function(exists) {
> if (exists) {
> var currentparser = require(currentModuleName);
> * currentparser.parse(this);*
> } else {
> //getValue();
> }
> });
> }
>
> I'd like to pass the DescriptorValue object itself to the parse method of
> the loaded module (currentparser) in the line with bold. I've seen several
> examples but can not solve this. Should I change this structure thus
> DescriptorValue's parse method shouldn't exist? This way the task of this
> method could be done from a function outside. But still, how can I pass a
> local variable into fs.exists' callback?
> Could you please help me?
>
> Thanks, Peter
>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to