为什么我们不能传递一个命名函数而不是一个匿名函数呢?
Why cant we pass a named function instead of a anonymous function?
我已经有一些javascript的经验,但我有一个疑问,相当长一段时间:为什么你不能传递一个命名函数的地方,它是一个匿名函数来执行一段代码?即:
document.getElementById('btn').addEventListener('click', function(){
alert('Hello World');
});
现在假设我已经有一个函数来做这个
var func = function(){
alert('Hello World');
}
为什么它不作为click事件的回调来执行?
document.getElementById('btn').addEventListener('click', func);
创建一个匿名函数然后调用命名函数似乎是多余的:
document.getElementById('btn').addEventListener('click', function(){
func();
});
我必须看看你的完整代码,但你可以传递一个函数作为一个变量。
document.getElementById('button1').addEventListener('click', function(){
alert('Hello World');
});
var func = function(){
alert('Hello World, it is me again.');
};
document.getElementById('button2').addEventListener('click', func);
在这里查看小提琴:
https://jsfiddle.net/b4ktmp09/您是否可能在代码中的错误位置声明函数(func)的变量,导致它为空?
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么