What is a security link in javascript?

I found this in d3:

function d3_dispatch_event(dispatch) {
  var listeners = [],
      listenerByName = new d3_Map;

  function event() {
    var z = listeners, // defensive reference
        i = -1,
        n = z.length,
        l;
    while (++i < n) if (l = z[i].on) l.apply(this, arguments);
    return dispatch;
  }

  event.on = function(name, listener) {
...

Link to string on github

What does "protective link" mean here?

+4
source share
1 answer

The problem with implementing an event system is to properly disable listeners. Changing the list of listeners when calling callbacks can lead to unexpected behavior.

, , 2 , x. x , index 0 index 1. index 0 . index 1. Loop index 1. , .

, , . , . .

d3 listeners.

listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));

, , . event . defensive reference , , ( ) listeners, , listeners .

+2

All Articles