Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446

ОПП, MVC JavaScript

17.11.2014, 08:57. Показов 3537. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

1.Подскажите пожалуйста, как в JS реализуется ОПП?

2.Подскажите пожалуйста, как в JS реализуется MVC?

Разные статьи читал, но нигде так и не увидел нормального примера. Либо только текст, либо текст + убогий пример, ничего явно не показывающий. На данный момент в голове каша. MVC, MVP, MVVM...
Различаюся ничем, а уже новый паттерн.

Разъясните пожалуйства кто-нибудь.

З.Ы. Хотелось бы посмотреть действительно понятный пример.

Заранее спс!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2014, 08:57
Ответы с готовыми решениями:

MVC в JavaScript
Добрый день, всем. Есть такой код: function coordinatesPoint(e){ e = window.event; var mapField = document.getElementById(...

MVC Javascript (часть 2 - event)
Добрый день, всем. Наконец-то немного разгреб завалы работы, и снова взялся за свою тестовую программу с использованием шаблона MVC. ...

MVC Javascript (часть 3 - массив точек)
Доброе утро, всем. Продолжаю писать учебную программу на JS и снова уперся в невидимую (для меня) стену. Суть такова: на данном этапе я...

5
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
17.11.2014, 15:04
some_name, довольно обширная тема для одного поста. Про ООП, на деле оказывается что это необычное ООП.
Пока что нет ни каких классов в JS, есть прототипы и на следование.
На них и строится более высокая абстракция. Про ООП мог бы более менее объяснить ( сам долго вникал в это дело ). Про MVC знаю меньше.
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
17.11.2014, 21:27  [ТС]
Цитата Сообщение от Thisman Посмотреть сообщение
Про ООП мог бы более менее объяснить
был бы очень благодарен
Цитата Сообщение от Thisman Посмотреть сообщение
Про MVC знаю меньше.
может походу дела вместе разберемся
0
Просто любитель
 Аватар для GuardCat
626 / 464 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
17.11.2014, 22:45
Лучший ответ Сообщение было отмечено some_name как решение

Решение

some_name, по ООП рекомендую блок статей. Если будут вопросы, пишите.

А по MVC... По моему мнению, вещь в чистом виде для js непригодная. Статья здесь. Но есть и альтернативные мнения с зубодробительными примерами.
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
17.11.2014, 23:07  [ТС]
Спасибо!
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
22.11.2014, 20:19  [ТС]
Вот навоял MVC на js.

Глятьте кто. Нужна конструктивная критика.

Model.js
Кликните здесь для просмотра всего текста

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function Model(){
    var data = 0;
    
    this.sub = function(value){
        data -= value;
        notify();
    }
    
    this.add = function(value){
        data += value;
        notify();
    }   
    
    var observers = [];
    
    this.getData = function(){
        return data;
    }
    
    this.removeObserver = function(o){
         for (var i = 0; i < observers.length; ++i) {
            var observer = observers[i];
            if (observer === o) {
                observers.splice(i, 1);
                return;
            }
        }
        throw new Error('that observer not found');
    }
    
    this.addObserver = function(o){
        if (typeof o !== 'function') {
            throw new Error('observer must be a function');
        }
        for (var i = 0; i < observers.length; ++i) {
            if (observers[i] === o) {
                throw new Error('observer already in the list');
            }
        }
        observers.push(o);
    }
    
    var notify = function(){
        var observersCopy = observers.slice(0);
        for (var i = 0; i < observers.length; ++i) {
            observersCopy[i]();
        }
    }
}

View.js
Кликните здесь для просмотра всего текста

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function View(controller, model){
    var instance = this;
 
    var mController = controller;
    var mModel = model;
    var that = this;
    mModel.addObserver(function(){
        instance.adderTextBox.val(mModel.getData());
    });
        
    var root = $('<div/>').appendTo($("body"));
    
    this.adderTextBox = $("<input type='text' value='0' />").appendTo(root);
    this.addButton = $("<input type='button' value='add' />").appendTo(root);
    this.subButton = $("<input type='button' value='sub' />").appendTo(root);
    
    this.addButton.bind('click', function(){
        var value = parseInt(prompt('Enter any number'), 10);
        mController.add(value);
    });
    
    this.subButton.bind('click', function(){
        var value = parseInt(prompt('Enter any number'), 10);
        mController.sub(value);
    });
}

Controller.js
Кликните здесь для просмотра всего текста

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function Controller(model){
    var mModel = model; 
    var mView = new View(this, model);
    
    this.add = function (value){
        mModel.add(value);
    }
    
    this.sub = function (value){
        mModel.sub(value);
    }
}

index.html
Кликните здесь для просмотра всего текста

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <body>
        <script src="jquery-2.1.1.min.js"></script>
        <script src="Model.js"></script>
        <script src="View.js"></script>
        <script src="Controller.js"></script>
        <script>
            $(document).ready(function () {                         
                var model = new Model();                            
                var controller = new Controller(model);                 
            });
        </script>
    </body>
</html>


AdderImplMvcJavsScript.rar

Заранее спс!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2014, 20:19
Помогаю со студенческими работами здесь

Возможно ли на javascript написать MVC фреймворк на js-файлах?
Возможно ли на javascript написать MVC фреймворк на js-файлах? Т.е. чтобы была model.js controller.js view.js и сам framework.js и...

Переход на MVC и ОПП
Здравствуйте! Пытаюсь несколько дней подряд перевести сайта на логику MVC. Познакомился с ООП стилем. И конечно, как только что то стал...

I18n + ASP MVC + JavaScript/JQuery - как получить данные из файла Resourses в JavaScript ?
Доброй ночи всем. Прощу помощи. Пытаюсь сделать мультиязычный сайт. Создал файл Resourse сделал там поля дал им названия и значения. ...

javascript во View MVC
Добрый день не подскажите почему не выполняется javascript функции применительно к img Пишу вот так &lt;script...

Внедрение javascript в ASP.NET MVC 5
Добрый день. Начал писать сайт с помощью ASP Web Form, но в процесе решил перейти на ASP MVC 5 (пишу и учусь одновременно) В ASP Web Form...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru