- Mastering JavaScript Functional Programming
- Federico Kereki
- 147字
- 2021-07-02 22:41:10
Solution #4 - change the handle
A variant to the previous solution would be not removing the click function, and rather assign a new one instead. We are using functions as first class objects here, when we assign the alreadyBilled() function to the click event:
function alreadyBilled() {
window.alert("Your billing process is running; don't click, please.");
}
function billTheUser(some, sales, data) {
document.getElementById("billButton").onclick = alreadyBilled;
window.alert("Billing the user...");
// actually bill the user
}
There's a good point to this solution: if the user clicks a second time, they'll get a warning not to do that, but they won't be billed again. (From the point of view of the user experience, it's better.) However, this solution still has the very same objections as the previous one (code coupled to the button, need to reset the handler, harder testing), so we won't consider it to be quite good anyway.
推薦閱讀
- DevOps:軟件架構師行動指南
- C語言程序設計(第3版)
- 前端跨界開發指南:JavaScript工具庫原理解析與實戰
- Python網絡爬蟲從入門到實踐(第2版)
- 云原生Spring實戰
- UML+OOPC嵌入式C語言開發精講
- Python Geospatial Development(Second Edition)
- Python Network Programming Cookbook(Second Edition)
- Data Analysis with Stata
- 大學計算機基礎(第2版)(微課版)
- jQuery開發基礎教程
- BIM概論及Revit精講
- Creating Stunning Dashboards with QlikView
- Android驅動開發權威指南
- Java7程序設計入門經典