Return boolean value through multiple functions
I have some Javascript code that needs to end with either a true or false value being returned. However, when the true/false value is computed, the original value has passed through multiple functions, like so:
var txt = 'foo'
function one(txt) {
if(txt == 'foo') { two(txt); }
}
function two(txt) {
if(txt == 'foo') { three(txt); }
}
function three(txt) {
if(txt == 'foo') { return true; }
else { retu开发者_开发技巧rn false; }
}
Obviously this example has little point but it gets the general point across. What I need to do to it is return the true
(or false
) value from function three()
all the way back to function one()
, and then have function one()
return that value to whatever called it. I am assuming I have to go back through function two()
to get back to one, is there a way I can do this with a variable? Just an idea. Thanks very much for any help!
You may want to try the following (if I understood your question correctly):
function one(txt) {
if(txt == 'foo') return two(txt);
else return false;
}
function two(txt) {
if(txt == 'foo') return three(txt);
else return false;
}
function three(txt) {
if(txt == 'foo') return true;
else return false;
}
Change the calls to three() and two() to return three() and return two().
If you like ternary operators:
function one(txt) {
return (txt == 'foo') ? two(txt) : false;
}
function two(txt) {
return (txt == 'foo') ? three(txt) : false;
}
function three(txt) {
return (txt == 'foo');
}
You can do it like people said above, or you can declare a variable outside the functions so it is global and just refer to it. It is not considered great practice, but it will work.
Try:
var txt = 'foo'
function one(txt) {
if(txt == 'foo') return two(txt);
else return false;
}
function two(txt) {
if(txt == 'foo') return three(txt);
else return false;
}
function three(txt) {
if(txt == 'foo') return true;
else return false;
}
var txt = 'foo';
function one(txt) {
return two(txt);
}
function two(txt) {
return three(txt);
}
function three(txt) {
return txt == 'foo'
}
精彩评论