简体   繁体   English

缓存event.target是否有意义?

[英]Does it make sense to cache event.target?

considering thoses javascript codes , is there an advantage to cache the event.target ? 考虑到那些javascript代码,缓存event.target有好处吗? i use this kind of event to avoid thousand of eventlistener attach in a contener . 我使用这种事件来避免在竞争者中附加数千个事件侦听器。

should i do this : 我应该这样做:

$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
    }

});

or 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
        }

    });

Yes, it does make sense. 是的,确实有道理。 Variables are faster than property lookup. 变量比属性查找要快。 And no, you should do 不,你应该做

$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
    }
});

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

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