2017-07-18 66 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 
}