Что выполняет данное выражание в JavaScript?

137
22 февраля 2019, 12:10

Работая с одним open source проектом, столкнулся со строками, которые не понимаю.

function MultiPeers(connection) {
  var self = this;
  var skipPeers = ['getAllParticipants', 'getLength', 'selectFirst', 'streams', 'send', 'forEach'];
  connection.peersBackup = {};
  connection.peers = {
    getLength: function() {
        var numberOfPeers = 0;
        for (var peer in this) {
          if (skipPeers.indexOf(peer) == -1) {
            numberOfPeers++;
          }
        }
        return numberOfPeers;
      }
      ..........

Что означает пройтись по this?

Answer 1

Пройтись по всем полям текущего объекта (в данном случае MultiPeers.connection.peers) и получить их имена

function MultiPeers(connection) { 
  var self = this; 
  var skipPeers = ['getAllParticipants', 'getLength', 'selectFirst', 'streams', 'send', 'forEach']; 
  connection.peersBackup = {}; 
  connection.peers = { 
    getLength: function() { 
      var numberOfPeers = 0; 
      for (var peer in this) { 
        console.log(peer); 
        if (skipPeers.indexOf(peer) == -1) { 
          numberOfPeers++; 
        } 
      } 
      return numberOfPeers; 
    } 
  } 
} 
 
const con = {}; 
const mp = new MultiPeers(con); 
con.peers.getLength();

READ ALSO
Как убрать ненужные стили?

Как убрать ненужные стили?

Owl Carousel добавляет ненужные стили к тегам, точнее ширину, которая мне не нужна

160
React Native на андроид

React Native на андроид

Всем приветУже 3 дня пытаюсь запустить симулятор андроид для react native

163
Видео в Slick-слайдере

Видео в Slick-слайдере

В slick-slider вставил видео через тег <video>Сделал так, чтоб воспроизводилось автоматически, но на мобильных устройствах видео не воспроизводится

134