在JavaScript中,参数可以通过引用传递给函数吗?
Can arguments be passed just by reference to function in JavaScript
看这个:
addEventListener("mouseover", function(e){..code..},false);
可以写成
function mouseover(e){ ... }
addEventListener('mouseover', mouseover, false);
所以这里mouseover
函数接收事件对象,即使它只是被引用而没有传递任何参数。我想也许addeventlistener
函数执行所有引用/匿名函数,像这样:
....
suppose like this
function addeventlistner (a,b,c){
b(e);
}
我为什么要问这个?
我不明白addeventlistner
函数function (e) {...code...}
中e
从何而来
据我所知,addeventlistner
的第二个参数可以是目标对象或函数。它被传递一个事件对象。函数可以对传递给它的对象做一些事情,这是有道理的,对象会对传递给它的事件对象做什么呢?
这样做的原因是,我试图在一些示例代码中理解函数从addeventlistner
中获取e,类似于上面的一个,并使用e.msg, e.data和e.cmd.....等属性我不知道它们是从哪里来的。
它们是事件对象的属性吗?我找不到他们!
当你添加一个事件监听器时,你添加的函数会根据事件的类型(点击,滚动等)传递一个事件对象。
http://www.w3schools.com/jsref/dom_obj_event.aspwindow.addEventListener("click", function(event) {
alert(event.pageX + ", " + event.pageY);
}, false);
// same as
window.addEventListener("click", function(e) {
alert(e.pageX + ", " + e.pageY);
}, false);
参数名可以是任何仍然代表事件对象的名称。
EDIT列出事件对象的所有属性和函数
window.addEventListener("click", function(event) {
var all = "";
for(var prop in event) {
all += prop + " : " + event[prop] + "'n";
}
alert(all);
}, false);
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- IIFE中的函数引用不可用
- Wordpress中的Javascript出现匿名函数/引用错误
- 将函数引用存储在散列中在javascript中无法正常工作
- Google可视化addListener调用函数引用错误
- 如何存储包含参数的JS函数引用
- 如何从函数引用元素(从事件侦听器调用)
- 将函数引用传递给嵌套闭包
- Javascript递归函数引用了这一点
- 在Node.js中,从同一文件中的另一个函数引用一个函数会导致'ReferenceError:-函数-未定义
- 为什么将函数引用封装到匿名函数中可以更正'这'指向
- 如何在ES6中使用Arrow函数引用对象内部的其他函数
- 复制不带属性的函数引用
- 在控制器中使用具有函数引用的服务
- Jquery 和闭包或函数引用不起作用
- 将函数引用传递给函数失败
- Jasmine spyOn:当传递间谍函数引用时如何使其工作
- 从 Javascript 中的嵌套函数引用对象成员
- Typescript-不同文件中的模块函数引用-“;找不到符号“;
- 与许多事件侦听器和函数引用一个对象相比,什么是更好的方法