2017-07-18 48 views
-1

我有一个顶级函数调用多个函数,每个函数都有一个布尔值。我想要在顶层函数中使用返回的布尔值来做其他事情。这是可能吗?返回布尔函数调用它 - Javascript /聚合物

例子:

请不要误会挂了什么功能的实际工作,但是请只专注于如果/如何他们可以通过自己的布尔性质回topFunct

topFunct : function() { 
    variable1 = this.$......; 
    variable2 = this.$......; 
    variable3 = this.$......; 

    this.funct1(); 
    this.funct2(); 

    if(funct1() && funct2()) { 
     //DO SOMETHING ELSE 
    } 
}, 

funct1 : function() { 
    if(variable1 == variable2) { 
     return true; 
    } else return false; 
}, 

funct2 : function() { 
    if(variable2 == variable3) { 
     return true; 
    } else return false; 
}, 
+3

是'variable1'等应该是全局范围......? 'var res1 = funct1()'有什么问题? – deceze

+0

谢谢@deceze! 是的,这些变量是故意全局的,因为否则我无法将它们的值传递给函数....如果我可以让它们变为非全局变量并且仍然传递它们,您有任何想法吗? – physicsboy

+0

---固定---看到我的答案,我如何分类(与同事的帮助!) – physicsboy

回答

0

所有你需要做的是在TopFunct:return this.funct1() && this.funct2();

+0

嘿迭戈,这对我没有用。我仍然遇到调试器的问题,说函数没有被定义等等。但是,@deceze给出了一个答案,就在我的问题的下面,似乎已经做到了。感谢您的帮助。 – physicsboy

0

@deceze张贴回答我的问题制定出巨大。

TopFunct现在显示为这样:

topFunct : function() { 
    variable1 = this.$......; 
    variable2 = this.$......; 
    variable3 = this.$......; 

    var result1 = this.funct1(); 
    var result2 = this.funct2(); 

    if(result1 && result2) { 
     //DO SOMETHING ELSE 
    } 
}, 

全局作用域变量是愚蠢的,所以修复可以被看作是:

topFunct : function() { 
    var params = {}; 

    params.variable1 = this.$......; 
    params.variable2 = this.$......; 
    params.variable3 = this.$......; 

    var result1 = this.funct1(params); 
    var result2 = this.funct2(params); 

    if(result1 && result2) { 
     //DO SOMETHING ELSE 
    } 
}, 

funct1 : function(params) { 
    // to use the params within here, must access them via their definitions in TopFunct. 
    // params.variable1 
    // params.variable2 
    // etc 
}