所以我要調用一個函數有沒有辦法檢查函數的第二次調用是否存在某些條件?
myfunction();
我希望能有我的代碼調用它一次,並罰款,但如果我的代碼調用它第二次,我想檢查一下,如果某些條件是真的,如果是的話,我希望函數不能運行。如果這些條件不成立,那麼我希望函數像往常一樣運行。我只想知道,只有第二次調用該函數時,特定的事情纔是真實的,並且不允許我的函數再次運行,直到這些條件不再成立爲止。
if(condition) {
//don't run function code for as long as this is true.
}
else{
//business as usual, run the code
}
我想在第二次調用函數時總是這樣做。所以第一個函數調用,不檢查。在第二個電話,檢查。在第三次呼叫不檢查,第四次呼叫檢查等。基本上,其他每次調用該函數,檢查是否有某些條件爲真 如果是,則不要運行功能代碼。我非常感謝你的迴應。
爲狀態添加一個函數最簡單的方法是閉包,爲什麼這麼強調對象呢? – 6502
因爲一個對象明確表示存在_is_狀態。如果您對編程採取純粹的功能性態度,那麼在給定相同輸入的情況下,函數應始終返回相同的內容。關閉打破了這種形式。我並不是說這是一件壞事,但是對象確實宣傳自己具有這種功能,而功能通常預計會更加一致。 –
對象解決方案是針對不同問題的答案。如果我需要將該函數傳遞給需要函數調用的其他人,那麼該對象是無用的(因爲調用者需要使用'o.fn(...)')或者我需要傳遞一個閉包。如果你在「純功能」陣營,並且你拒絕了你現在使用的電腦可能具有幾千兆字節純蒸餾狀態的想法,那麼我會說最好是讓JavaScript獨立並加入哈斯凱爾軍隊,宗教在一塊地毯下隱藏國家必需品。 – 6502