Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ООП и JavaScript (https://javascript.ru/forum/misc/64719-oop-i-javascript.html)

Ostic 31.08.2016 15:39

ООП и JavaScript
 
Здравствуйте.
Недавно начал изучать JavaScript. Есть опыт С, C++, Java и то ли я такой, то ли лыжи не едут ...
Что в JavaScript нет классов в смысле С++, Java?
типа
Код:

class JSClass {
 int a;
JSClass(int b){a=b;};
~JSClass(){};
GetAny(){};
PutAny(){};
}
JSClass A = new JSClass(1);
A.GetAny();

function JSClass(){
}

это и есть типа класс? или я чего-то пропустил?

ksa 31.08.2016 15:53

Цитата:

Сообщение от Ostic
Что в JavaScript нет классов в смысле С++, Java?

Что есть "класс" в твоем понятии?

В JS есть объекты...
http://javascript.ru/object
Вот про ОПП
https://learn.javascript.ru/oop
https://learn.javascript.ru/prototypes

Ostic 31.08.2016 21:04

Цитата:

Сообщение от ksa (Сообщение 427238)
Что есть "класс" в твоем понятии?

если просто, то это именованная область памяти(автоматическая, динамическая или статическая - не суть), в которой хранятся
переменные и функции.
Цитата:

Сообщение от ksa (Сообщение 427238)
В JS есть объекты...
http://javascript.ru/object

это ассоциативный массив или enum (в Си)
кстати, а какой АТД(абстрактный тип данных в основе)
хэш таблица или дерево какое? если их объединять можно, то дерево
Цитата:

Сообщение от ksa (Сообщение 427238)

да, читал про кофемашину ))
почему класс называется function() ?
function CoffeeMachine(power, capacity) {
  var waterAmount = 0;

  this.waterAmount = function(amount) {

функция, внутри которой есть переменная, которая ссылаясь на функцию, которой она принадлежит, от безымянной функции получает значение и при этом надо еще все это "динамически" создать
var coffeeMachine = new CoffeeMachine(1000, 500);
притом что delete нет, а про утечки памяти где-то проскакивало, но еще не читал
массивы работают как очереди на основе массивов FIFO :help:
сортировки поди пузырьковые?:cray:

nerv_ 31.08.2016 21:39

Прототипное программирование
Классы

Ostic 31.08.2016 22:02

nerv_, это именно то, о чем я и спрашивал.
только опять же:blink:
Цитата:

В современном JavaScript появился новый, «более красивый» синтаксис для классов
алилуйя!
Цитата:

class не позволяет задавать свойства-значения
снова сюрприз ...
почему обычные переменные то нельзя было в класс добавить?
ладно будем посмотреть дальше

destus 01.09.2016 05:35

Ostic,
геттеры/сеттеры тебе в помощь...

warren buffet 01.09.2016 06:28

Цитата:

Сообщение от Ostic
это именованная область памяти(автоматическая, динамическая или статическая - не суть), в которой хранятся
переменные и функции.

Это объект, инстансь, а класс - это текст.

warren buffet 01.09.2016 06:35

Цитата:

Сообщение от destus
геттеры/сеттеры

Расскажи плес про это. Какой смысл в get fullName, если я не знаю заранее какое имя будет у переменной, может быть fullName, может быть onceUponAtime... То есть есть в js магия как в php или облом?

destus 01.09.2016 07:02

warren buffet,
А какой тогда смысл в классах? Если у объектов будет разный набор свойств.
Цитата:

магия как в php
а что именно там за магия?...:blink:

ksa 01.09.2016 08:19

Цитата:

Сообщение от Ostic
почему обычные переменные то нельзя было в класс добавить?

Видать тебя все ждали. :D


Часовой пояс GMT +3, время: 10:28.