Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2016, 02:40
Новичок на форуме
Отправить личное сообщение для AndreyMG Посмотреть профиль Найти все сообщения от AndreyMG
 
Регистрация: 28.11.2015
Сообщений: 8

Структура в Javascript
Добрый день!

По воле случая столкнула меня жизнь с javascript'ом
Сам я с программированием знаком, а именно по большей части с C/C++, C#.

В связи с этим голова у меня думает в рамках ООП. Поэтому хотелось бы задать соответствующий вопрос:

Мне необходимо объявить структуры, далее использовать массивы хранящие эти структуры. Подскажите пожалуйста на сколько грамотен такой подход:

function COMMAND() {
    this.name = null;
    this.address = null;
    this.code = null;
    this.op1 = null;
    this.op2 = null;
}


Далее я делаю что-то типа этого:
var commands = [];

// некоторый кусок кода

commands.push(new COMMAND());


Про инициализацию значений и т.п. я молчу, это всё понятно. Просто интересует на сколько грамотен такой подход к организации СТРУКТУР в javascript.

Такой подход мне нравится тем, что я могу получить доступ к полю на подобии языка C++, т.е. просто обратиться к элементу по индексу в массиве, а далее просто использовать конструкцию с точкой - просто получить/задать нужное значение поля.

Пример:
commands[0].name = "123";


Так же интересует на сколько возможно засунуть функции в данную структуру (аналог класса для C++).

Чтобы можно было сделать что-то вроде такого:
commands[0].LogToConsole();
commands[0].ConvertCodeToHex();


Т.е. просто вызывать некоторые функции для определенного объекта структуры.

Про то что можно просто передавать таким образом в функцию я понимаю
LogToConsole(commands[0]);
ConvertCodeToHex(commands[0]);


Но лично мне будет куда удобнее 1 вариант. Так что если первый вариант не будет дичайшим бредом в рамках языка джаваскрипт - прошу помочь мне!

Заранее спасибо за ваши ответы!
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2016, 02:58
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

AndreyMG, методы класса пишем в прототип конструктора:
function COMMAND() {
    this.name = null;
    this.address = null;
    this.code = null;
    this.op1 = null;
    this.op2 = null;
}
COMMAND.prototype.LogToConsole = function() {
    // this - ссылка на объект
    // код
};
COMMAND.prototype.ConvertCodeToHex = function() {
    // код
};

// Или так
COMMAND.prototype = {
    constructor: COMMAND,
    LogToConsole: function() {
        // код
    },
    ConvertCodeToHex: function() {
        // код
    }
};

Последний раз редактировалось Rise, 13.05.2016 в 03:06.
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2016, 13:13
Новичок на форуме
Отправить личное сообщение для AndreyMG Посмотреть профиль Найти все сообщения от AndreyMG
 
Регистрация: 28.11.2015
Сообщений: 8

Спасибо большое! Именно то что я искал!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34