缓存event.target有意义吗?

Does it make sense to cache event.target?

本文关键字:有意义 target event 缓存      更新时间:2023-09-26

考虑到这些javascript代码,缓存事件是否有优势?目标?我使用这种事件是为了避免在一个竞争者中附加数千个事件侦听器。

我应该这样做吗?

$element.addEventListener("click",function(event)
{
    if(event.target.id == "someid" )
    {
        event.target.dosomething
        event.target.dosomething
        event.target.dosomething
        event.target.dosomething
    }
    else if (event.target.id == "someanotherid" )
    {
        event.target.dosomething
        event.target.dosomething
        event.target.dosomething
        event.target.dosomething
    }
});

或this:

$element.addEventListener("click",function(event)
    {
        if(event.target.id == "someid" )
        {
          var targetA = event.target;
            targetA.dosomething
            targetA.dosomething
            targetA.dosomething
            targetA.dosomething
        }
        else if (event.target.id == "someanotherid" )
        {
          var targetB = event.target;
            targetB.dosomething
            targetB.dosomething
            targetB.dosomething
            targetB.dosomething
        }
    });

是的,这是有道理的。变量比属性查找更快。不,你应该写

$element.addEventListener("click", function(event) {
    var target = event.target;
    if (target.id == "someid") {
        target.dosomething1
        target.dosomething2
        target.dosomething3
        target.dosomething4
    } else if (target.id == "someanotherid") {
        target.dosomethingelse1
        target.dosomethingelse2
        target.dosomethingelse3
        target.dosomethingelse4
    }
});