Почему мой код ломается, когда я пытаюсь присоединить свои методы к прототипу класса? - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь создать класс кнопок, который переключает карусель видео или изображений.Всякий раз, когда я присоединяю свои методы к прототипу, мой код терпит неудачу.

Я пытаюсь использовать шаблон проектирования: выявление шаблона прототипа

https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-know

мой код: https://codepen.io/Woodenchops/pen/QRzeXX?editors=0010

function playToggle(props) {

  console.log(this);

  this._parentElement = props.parentElement;
  this._button = props.button;
  this._playing = props.playing;
  this._props = props;
  this._mediaType = props.mediaType;
  this._video_id = props.videoID;
  this._caroursel_id = props.carouselID;

}

playToggle.prototype = function () {

// methods here

}()

(function () {

  var video = document.querySelectorAll('.container');

  videoArray = [];

  video.forEach(function (vid) {
    videoArray.push(new playToggle({
      parentElement: vid,
      button: '.playpause',
      playing: true,
      mediaType: 'video',
      videoID: '.myVideo'
    }))
  });

})();

У меня в прототипе есть консоль this, и она возвращает объект окна.Я также пытался использовать bind, чтобы привязать его к классу - безуспешно

1 Ответ

0 голосов
/ 02 июня 2019

Вы не определили прототип должным образом

playToggle.prototype.thePrototypeName = function() {..}

 var play = new playToggle();
 play.thePrototypeName()

Результат журнала консоли

Object: playToggle {}
...