如果函数是值为什么不能回调函数是一个变量?
问题描述:
函数式编程函数是值。所以如果一个函数是一个值,为什么我不能使用一个变量作为回调函数?如果函数是值为什么不能回调函数是一个变量?
function myFunction() {}
作为回调。
myFunction = function() {}
不能用作回调。
下面的测试代码不起作用,我不知道为什么。
'use strict';
\t
var myFunction;
\t
window.addEventListener('click', myFunction);
\t
myFunction = function() {
console.log('clicked');
}
<button id="click">click</button>
答
您错过其中变量分配给功能的一部分。这发生在稍后再与事件监听器一起使用。当事件监听器获取变量时,变量的值是undefined
。
如果更改了赋值和变量的使用,它可以正常工作。
Function declarations被吊起,而作业保持原状。
太感谢你了。我认为我的功能已经挂起。我会在下次看! – DR01D