Структура в 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 вариант. Так что если первый вариант не будет дичайшим бредом в рамках языка джаваскрипт - прошу помочь мне! Заранее спасибо за ваши ответы! |
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() { // код } }; |
Спасибо большое! Именно то что я искал!
|
Часовой пояс GMT +3, время: 09:46. |