繁体   English   中英

js中'function(event)'是什么意思

[英]What is the meaning of 'function(event)' in js

我不知道“函数(事件)”这句话的意思

Event.add(apple,'click',function(event) {
    Event.stopPropagation(event);
});

参数'event'不是javascript的唯一关键字吗?

关键字可以是某个函数的参数吗?

我理解以下代码的含义:

function(test) {
alert(test);
}

但我不明白这一点:

功能(事件)...

任何人都可以向我解释一下吗?

事件对象总是传递给处理程序并包含许多有用的信息。

不同类型的事件提供不同的属性。 例如,onclick 事件对象包含:

  • event.target - 对被点击元素的引用。 IE 使用 event.srcElement 代替。
  • event.clientX / event.clientY - 单击时指针的坐标。

有关单击了哪个按钮和其他属性的信息。 请访问此链接。
它非常简单地回答了您的所有问题

来源http://javascript.info/tutorial/obtaining-event-object

例子:

就像在 HTML 中您分配了这样的事件

<button onclick="alert(event)">See the event</button>

然后

function alert(event) {
    // event.type contains whether this event was invoked in the result of a click etc
    // event.target would contain the reference to the element which invoked this method/event
}

它是一个匿名函数,即一个没有名字的函数,它发送事件对象。 该对象包含有关事件本身的信息。 它总是作为第一个对象/变量传递。

它定义了一个匿名函数对象。 这段代码:

function foo(bar) { ... }

在功能上类似于:

var foo = function (bar) { ... };

(除了在第一种情况下,名称foo以及函数对象的创建和赋值被提升到作用域的顶部,而在第二种情况下,只有名称foo被提升;直到赋值时foo才会持有该函数执行。)

实际上,您发布的代码正在调用Event.add()并将一个函数作为第三个参数传递给它,而不是提前声明该函数,而是创建了内联函数对象。

在您的问题中编写代码块的另一种方法是:

function handler(event) {
    Event.stopPropagation(event);
}

Event.add(apple, 'click', handler);

除了您问题中的代码没有引入handler名称。


请注意,没有这样的方法Event.stopPropagation() 然而, event对象会有一个stopPropagation() ,所以大写的 E 可能是一个错字。 很可能意图是使用function (event) { event.stopPropagation(); } function (event) { event.stopPropagation(); } .

event只是传递给事件侦听器函数的变量,例如Event.addelement.on 它不是保留的(尽管Event是,这就是您可以使用Event.add ),并且您可以随意命名它。

event参数用于传递有关已发生事件的信息(在本例中为点击apple ),可用于检索有关该事件的数据或对其进行操作。


function(){...}是一个匿名函数,这意味着你不需要命名它,你可以直接声明它内联,并且该函数将作为参数传递,就像你说的

function foo (event) {
    ...
}
Event.add(apple, "click", foo);

但你不需要事先声明它。 它确实具有不可复制的缺点,例如在清除事件处理程序时。

看看事件变量你就明白了:)

function (event) {
  console.log({ event });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM