Javascript 关于document.addEventListener(';mousemove';,函数(e)的新手问题{

Javascript 关于document.addEventListener(';mousemove';,函数(e)的新手问题{,javascript,dom,google-chrome,google-chrome-extension,Javascript,Dom,Google Chrome,Google Chrome Extension,好: 最近我意识到,通过Chrome扩展,我可以大大增强与一些网站的互动,从而重新排序和重写网站,以满足我的需要 所以,我一直在努力掌握chrome扩展、javascript、css、dom、jquery和HTML。这是一个庞大的主题,我对web技术非常陌生 有人能解释一下“函数(e){…代码…}”在这个上下文中是什么吗 它是一个没有名字的内联函数?因此,与其他语言不同,不是创建一个有名字的函数,然后在需要时调用它,而是用一个未命名的函数钩住mousemove 我想问一个愚蠢的问题,拥有一个内联

好:

最近我意识到,通过Chrome扩展,我可以大大增强与一些网站的互动,从而重新排序和重写网站,以满足我的需要

所以,我一直在努力掌握chrome扩展、javascript、css、dom、jquery和HTML。这是一个庞大的主题,我对web技术非常陌生

有人能解释一下“函数(e){…代码…}”在这个上下文中是什么吗

它是一个没有名字的内联函数?因此,与其他语言不同,不是创建一个有名字的函数,然后在需要时调用它,而是用一个未命名的函数钩住mousemove

我想问一个愚蠢的问题,拥有一个内联的未命名函数的好处是什么?

函数(e){…code…}
是对一个匿名函数的引用,在发生
mousemove
事件时运行。
e
参数是随事件本身发送的事件对象

基本上你会说:每当有人在DOM对象
文档
中的某个地方移动鼠标时,使用我在该函数的参数中给你的事件对象执行该函数

您还可以使用(为了可读性和清晰性,有时会建议这样做):

如果以后决定删除eventlistener(
removeEventListener
),这也是首选的方法

内联匿名函数有时称为lambda函数。您可以在中了解它

根据注释中的请求:在javascript中,函数是第一类对象。具体来说,这意味着该语言支持将函数作为参数传递给其他函数,将其作为其他函数的值返回,并将其分配给变量或存储在数据结构中(引自)。另请阅读更多信息。

function(e){…code…}
是对在发生
mousemove
事件时运行的匿名函数的引用。
e
参数是随事件本身发送的事件对象

基本上你会说:每当有人在DOM对象
文档
中的某个地方移动鼠标时,使用我在该函数的参数中给你的事件对象执行该函数

您还可以使用(为了可读性和清晰性,有时会建议这样做):

如果以后决定删除eventlistener(
removeEventListener
),这也是首选的方法

内联匿名函数有时称为lambda函数。您可以在中了解它


根据注释中的请求:在javascript中,函数是第一类对象。具体来说,这意味着该语言支持将函数作为参数传递给其他函数,将其作为其他函数的值返回,并将其分配给变量或存储在数据结构中(引自)。请阅读更多信息。

它们被称为匿名函数

您可以在此处阅读更多关于它们的信息:


它们被称为匿名函数

您可以在此处阅读更多关于它们的信息:

内联(匿名)函数只是一种样式,允许使用较短的代码。它们还可以通过在当前作用域中引入不需要的名称来避免污染命名空间

但是,在这种特殊情况下,有一个缺点,即如果以匿名方式添加特定的事件侦听器,则无法删除它。

内联(匿名)函数只是一种样式,允许使用较短的代码。它们还可以通过在当前作用域中引入不需要的名称来避免污染命名空间


然而,在这种特殊情况下,有一个缺点是,如果以匿名方式添加特定的事件侦听器,则不可能删除它。

哈哈,我以为我已经访问了每个javascript站点,但我错过了一个:)事实上,非常好。我熟悉Delphi,但我没有将Delphi的匿名过程与奇怪的javascript函数(e)联系起来哈哈,我本以为我会访问每一个javascript站点,但我错过了那一个:)事实上,真的很棒。我熟悉Delphi,但我没有将Delphi的匿名过程与奇怪的javascript函数(e)联系起来.好的,主要是我当时的想法。我想。是的,它们主要是在内联函数非常短的时候使用。所以任何可能在资源上有点重的严肃代码几乎都不会内联,对吗?好的,主要是我当时的想法。我想。是的,它们主要是在内联函数非常短的时候使用。所以,任何系列s的代码可能会占用更多资源,但几乎永远不会内联,对吗?回答得好,但我认为将注意力更多地集中在js中的函数是第一类对象这一事实上是有帮助的,因为我认为这是OP很难掌握的,而不是匿名函数(这是一个非常琐碎的概念)非常好!谢谢serg和Kooilnc!回答得很好,但我认为将注意力更多地集中在js中的函数是第一类对象这一事实上会有所帮助,因为这是我认为OP很难掌握的,而不是匿名函数(这是一个非常琐碎的概念)非常好!谢谢serg和Kooilnc!
document.addEventListener('mousemove', function (e) {...code...}, false);
function mousemover(e){ ... }
document.addEventListener('mousemove', mousemover, false);