@Speakermen

Почему функции, классы, объекты это не структуры данных?

Почему функции, классы, объекты относятся к парадигмам ООП, ФП, а не к структура данных они содержат типы данных и литералы (сами данные)? Потому что я не могу взаимодействовать с этой структурой?
Структура данных — это способ организации информации для более эффективного использования.

Стек - Эта структура данных позволяет добавлять и удалять элементы только из начала но в массивах и так есть методы pop, push,

Очередь - Этот вид структуры представляет собой ряд данных, как и стек. Но в отличие от него она работает по принципу FIFO — First In, First Out (англ. «первым пришёл — первым ушёл»). Данные добавляют в конец, а извлекают из начала. но и методы для массива тоже есть)))

const fistName = "John";
const lastName = "Doe";

const user1 = [fistName, lastName];
const user2 = { fistName, lastName };

const getUser1 = function (fistName, lastName) {
  return [fistName, lastName];
};

const getUser2 = function ([fistName, lastName]) {
  const user = [fistName, lastName];
  return user;
};

const getUser3 = function ({ fistName, lastName }) {
  return { fistName, lastName };
};

const funcUser1 = function () {
  return [getUser2, getUser3];
};

const funcUser2 = function () {
  return { fn1: getUser2, fn2: getUser3 };
};

class User1 {
  constructor(fistName, lastName) {
    this.fistName = fistName;
    this.lastName = lastName;
  }

  getUser1() {
    return [this.fistName, this.lastName];
  }
}

class User2 {
  constructor(fistName, lastName) {
    this.fistName = fistName;
    this.lastName = lastName;
  }

  getUser2() {
    return { fistName: this.fistName, lastName: this.lastName };
  }
}

class User3 {
  fistName;
  lastName;

  cl1(fistName) {
    this.fistName = fistName;
    return this;
  }

  cl2(lastName) {
    this.lastName = lastName;
    return this;
  }

  getUser() {
    return {
      fistName: this.fistName,
      lastName: this.lastName,
    };
  }
}

const getUser4 = function () {
  return new User1(fistName, lastName);
};

const getUser5 = function () {
  return {
    cl1: new User1(fistName, lastName),
    cl2: new User2(fistName, lastName),
    cl3: new User3(),
  };
};

//console.log(fistName, lastName);
//console.log(user1[0], user1[1]);
//console.log(user2.fistName, user2.lastName);
//console.log(getUser2(user1));
//console.log(getUser2([user1[0], user1[1]]));
//console.log(getUser3({ fistName, lastName }));
//console.log(getUser3(user2));
//console.log(getUser3({ fistName: user1[0], lastName: user1[1] }));
//console.log(new User1(fistName, lastName).getUser1());
//console.log(new User2(fistName, lastName).getUser2());
//console.log(getUser4(fistName, lastName).fistName);
//console.log(getUser4(fistName, lastName).lastName);
//console.log(funcUser1()[0](user1));
//console.log(funcUser1()[1](user2));
//console.log(getUser4().fistName);
//console.log(getUser4().lastName);
//console.log(getUser4().getUser1());
//console.log(getUser5().cl1.fistName);
//console.log(getUser5().cl1.lastName);
//console.log(getUser5().cl1.getUser1());
//console.log(getUser5().cl2.getUser2());
console.log(getUser5().cl3.cl1("Do").cl2("Do").getUser());
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
Структура — всего лишь абстрактное описание представления данных, которое не зависит от способа реализации или языка программирования (можно в массиве элементы передвигать, а можно и камушки на песке). Соответствующие функции и методы объектов или классов реализуют конкретную логику поведения и обработки данных для той или иной структуры.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы