2017-11-25 158 views
0

函数式编程函数是值。所以如果一个函数是一个值,为什么我不能使用一个变量作为回调函数?如果函数是值为什么不能回调函数是一个变量?

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>

回答

1

您错过其中变量分配给功能的一部分。这发生在稍后再与事件监听器一起使用。当事件监听器获取变量时,变量的值是undefined

如果更改了赋值和变量的使用,它可以正常工作。

Function declarations被吊起,而作业保持原状。

+0

太感谢你了。我认为我的功能已经挂起。我会在下次看! – DR01D

相关问题