开发者

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'
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜