Почему функции, классы, объекты относятся к парадигмам ООП, ФП, а не к структура данных они содержат типы данных и литералы (сами данные)? Потому что я не могу взаимодействовать с этой структурой?
Структура данных — это способ организации информации для более эффективного использования.
Стек - Эта структура данных позволяет добавлять и удалять элементы только из начала но в массивах и так есть методы 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());