@AlexandrMa

Как обернуть мой код в класс?

Сейчас весь код в глобальной области. Мне бы хотелось, чтобы все эти данные, прослушиватели и функции (методы) находились в какой-то одной сущности, модуле, классе. Не знаю как это назвать. Как это сделать?

document.addEventListener('DOMContentLoaded', function(){

  let table_items = document.getElementById('table_items');

  function getData(){
    let req = new XMLHttpRequest();
    req.open('POST', '/get_items.php');
    req.send();
    req.onreadystatechange = function(){
      if(req.readyState === 4 && req.status === 200){
        createTable(JSON.parse(req.responseText));
      }
    }
  }

  function createTable(els){

    let el = '';
    els.forEach(function(v, k){
      el += '<div class="item">';
      el += '<p>' + v.id + '</p>';
      el += '<p>' + v.date + '</p>';
      el += '</div>';
    });

    table_items.innerHTML = el;

  }


  document.addEventListener('click',function(e){
    if(e.target && e.target.className  === 'item'){
      alert('CHECK');
    }
  });

  getData(); //init

});
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@lolzqq
HTML,CSS,JS,PHP
Это называется создать объект JavaScript.
window.my_custom_object={
    init:function(){ 
         // ваши инструкции
         alert('Скрипт работает!') // для теста можете оставить
    },
    another_function:function(){
        // ещё один метод объекта с вашими инструкциями
        alert('Второй скрипт тоже работает!'); // для теста можете оставить
    },
    parameter_1: "abc",
    parameter_2: 1
}
// вызываем метод init, прописанный в объекте
my_custom_object.init();
// вызываем метод another_function, прописанный в объекте
my_custom_object.another_function();
// вызываем параметр parameter_1, хранимый в объекте
alert(my_custom_object.parameter_1) // покажет вам текст "abc"
// вызываем параметр parameter_2, хранимый в объекте
alert(my_custom_object.parameter_2) // покажет вам текст "1"

Правда от этого этот код из глобальной области никуда не денется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽