在onclick事件中将一个函数封装在另一个函数中究竟意味着什么?
What does encapsulating a function inside another function in onclick event actually mean?
我在W3Schools学习JavaScript,我遇到了这样的表达式:
document.getElementById("myBtn").onclick = function(){displayDate()};
在等号的右边,有一个匿名函数,对吗?当我们没有用匿名函数封装displayDate()
函数时,它只能点击一次。当我多次点击按钮时,它不会更新日期。那么JavaScript中这些函数的含义是什么呢?我是一个真正的新手。谁能给我解释一下这个方法?在onclick事件中用匿名函数封装函数
您的代码应该严格等同于以下内容:
document.getElementById('myBtn').onclick = displayDate;
因为,对于目的仅仅是显示日期的函数displayDate
,函数function () { displayDate(); }
在调用它时应该具有与函数displayDate
完全相同的效果。
因此,日期只更新一次的问题应该与displayDate
是否包装在匿名函数中无关。您应该查看displayDate
的定义来查找错误。
这是在后台发生的事情:.onclick接受一个函数,该函数是onclick事件侦听器的回调函数。根据定义,回调函数应该等于函数。在JS中,当你put =myfunction()时,你不会将函数定义传递给变量,但你正在做的是传递函数执行的值。这应该会给你一个错误,因为。onclick必须接受一个函数。要传递函数的定义,您可以删除()或将其放入function(){myFunc;}
相关文章:
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 为什么封装的Javascript函数有如此巨大的性能差异
- Dijkstra's”;针对GOTO声明的案件“;与函数一样适用于现代调用代码的命名封装
- Javascript:正常函数的命名空间封装
- 为什么将函数引用封装到匿名函数中可以更正'这'指向
- 在封装的JavaScript函数中设置用于重用的私有变量
- 如何将 $http.put 封装到一个函数中,该函数执行某些操作,然后返回通过或失败的承诺
- 为什么我要在jQuery(function ($) { });中封装一个jQuery函数
- 将 chrome API 操作封装到函数中
- 用函数回调封装JavaScript
- 将D3函数封装在对象内部;不起作用.为什么?
- 将函数封装在jQuery.removeClass()中是否安全
- Javascript 函数封装
- 在onclick事件中将一个函数封装在另一个函数中究竟意味着什么?
- 尝试将此函数封装在对象中
- 函数封装变量是否未定义的检查
- JS函数封装
- 闭包编译器ADVANCED_OPTIMIZATIONS和函数封装
- 将一个函数封装在另一个函数中
- 对于jQuery,将函数封装在圆括号中有什么意义?