powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Мотивирующий пример применения ООП в js
13 сообщений из 13, страница 1 из 1
Мотивирующий пример применения ООП в js
    #36416840
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В js ООП никогда особо не пользовался, и не считаю особо нужным (наверное, потому что не было положительного опыта, к тому же ООП в js довольно "странное" после C++/Java). Можно мотивирующий пример, который показывает некоторый ООП прием в js, и как было бы плохо без ООП в этом примере.

Спасибо
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416849
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Обычно, технология под задачу выбирается, а не "сделайте мне 'красиво'". Покажите, что написали на своём ООП, а я скажу есть у мена такое, или нету.
ПС. Кстати, на яве не я один здесь умею писать... . :)
Имхо, C++ Вы не знаете и знать не можете, судя по вопросу.
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416858
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не утверждаю, что знаю. просто в C++/Java ООП мне это кажется понятным, а в js - не совсем понятно: сейчас читаю буквари по ООП в js, хотелось бы пример и контрпример, которые были бы в пользу ООП в js, что-то типо того...
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416861
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и "сделайте мне красиво" тоже не помешало бы :)
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416864
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

А при чём здесь ООП? Что Вы писать хотите? З а д а ч а какая? Я непонятно вопрос задал? Нужно ли Вам это ООП? Кто Вам это сказал? Ещё раз: какая задача, то есть, что Вы хотите получить?
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416866
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, наваял класс (если это так можно назвать) - оболочку для вызова функций com-объектов для Download/Upload файлов

Код: plaintext
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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
function BackgroundFileWork(
    hostName, 
    port, 
    downloadComplete,
    uploadComplete,
    downloadProgress,
    uploadProgress) 
{
    this.HostName = hostName;
    this.Port = port;
      
    var objDownload = null;
    var objUpload = null;
    
    this.Init = function() 
    {
        try
	    {
	        var comObj1 = document.createElement("object");
            comObj1 = document.createAttribute("classid","clsid:DE6D2D41-6A36-4624-A0A4-AD587FCF10DC");
        
            var comObj2 = document.createElement("object");
            comObj2 = document.createAttribute("classid","clsid:B055E7B6-06F0-4726-A0E5-C32773E635A7");
            
            objDownload = new ActiveXObject("FileWork.DownloadControl");
            objUpload = new ActiveXObject("ChilkatUpload.ChilkatUpload");
            
            if(!objDownload.ValidateWorkDirectory())
                objDownload.SetDefaultWorkDirectory();

	    }
        catch(e)
	    {
		    alert(e.description);
		    return false;
	    }
        return true;
    };
    
    this.SetWorkDirectory = function() 
    {
        objDownload.SetWorkDirectory();
     };
    
    function timerDownload(obj)
    {
        var prcnt = 0 ;
        var timeOut = setTimeout(function() {timerDownload(obj);},  1000 );
        
        if(objDownload.ProgressMax!= 0 )
		    prcnt = Math.round(objDownload.Progress/objDownload.ProgressMax)* 100 
        
        obj.DownloadProgress(prcnt);
	    if(objDownload.UploadComplete) 
	    {
		    clearTimeout(timeOut);
		    
		    obj.DownloadComplete(prcnt);    		
		    return;
	    }
    }

    function timerUpload(obj)
    {
        var timeOut = setTimeout(function() {timerUpload(obj);},  1000 );
        obj.UploadProgress(objUpload.PercentUploaded);
	    
	    if(objUpload.UploadSuccess) 
	    {
		    clearTimeout(timeOut);
		    obj.UploadComplete(objUpload.PercentUploaded);
		    return;
	    }
    }
    
    this.UrlDownloadToFile = function(pathFileServer, clientFileName) 
    {
        try
        {
            objDownload.UrlDownloadToFile(this.HostName+":"+this.Port+"/"+pathFileServer, objDownload.WorkDirectory+"\\"+clientFileName);
            
            timerDownload(this);
            
        }
	    catch(e)
	    {
		    alert(e.description);
		    return false;
	    }
    };
    
    this.UrlUpload = function(pageUploadPath) 
    {
        try
        {
            objUpload.Hostname=this.HostName;
            objUpload.Path="/"+pageUploadPath;
            objUpload.Port=this.Port;
            objUpload.AddFileReference(objDownload.LastDownloadFileName, objDownload.LastDownloadFileName);
            objUpload.BeginUpload();
            
            timerUpload(this);
            
        }
	    catch(e)
	    {
		    alert(e.description);
		    return false;
	    }
    };
    
    this.ExecuteDownLoadFile = function() 
    {
        try
        {
            objDownload.ExecuteDownLoadFile();
            
        }
	    catch(e)
	    {
		    alert(e.description);
		    return false;
	    }
    };
    
    this.DownloadComplete = downloadComplete;
    
    this.UploadComplete = uploadComplete;
    
    this.DownloadProgress = downloadProgress;
    
    this.UploadProgress = uploadProgress;
}

Все тоже самое можно было и обычными js-функциями сделать. Для повторного использования разницы никакой нет. как-то так. может это можно как-то иначе, более "ООП", чтоли реализовать?
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416890
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawНапример, наваял класс (если это так можно назвать) - оболочку для вызова функций com-объектов для Download/Upload файлов
Вы понимаете в каком форуме находитесь?
Здесь COM-сервера не пишут и COM-объекты не используют.
ПС. Аплоад файла делается на любом языке и на любой платформе не более, чем тремя строчками кода, а аплоад - вообще просто ссылкой. М.б. Вы не на тот форум попали?
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416892
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawНапример, наваял класс (если это так можно назвать) - оболочку для вызова функций com-объектов для Download/Upload файлов
Сразу бы и сказали, что не о http говорите. Извините, не понял.
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416900
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, это тот форум - здесь же про js - не важно для чего этот набросок класса используется (он отражает мой уровень понимания ООП в js): если использовать только глобальные переменные и обычные функции (а не функции внутри функции и переменные члены), то по сути ничего не изменится - может только чуть удобнее читать код. а мне хочется увидеть в чем прикол ООП в js (полиморфизма то ведь нет, насколько я знаю)
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36416973
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Где-то статью хорошую видел. Там как раз сравниваются обычные ООП и как в яваскрипте. Не помню урл, но гуглил что-то типа prototype.
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36417059
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Если очень придирчиво подойти к данному вопросу - "ООП в js" - то буквально все им пропитано, ибо в js "все есть объект" ... и т.д. по цепочке.
2. Язык все-таки скриптовый, интерпретируемый, поэтому очень зажат как средой, так и выполнением (о применении и вовсе молчу - в подавляющих случаях как небольшое дополнение к оформлению странички).
3. Я для себя раскрыл и активно применяю принципы построения и использования ООП в js в стыковке данных и функциональности страницы. Основное применение - сложные страницы с загрузкой данных, возможной подгрузкой и конечным аплоадом их на сервер. Поясню: работа страницы часто связана с отражением данных и достаточно сложной реакцией активных элементов на изменение самой страницы. Так вот чтобы не плодить скрипты со сложными функциями, в каждой из которых происходит доморощенное изменение элементов или их реакции, я создаю ООП-структуру, которая сама связывает данные и реакцию элементов. А сами элементы напрямую не работают с данными, а лишь с методами и свойствами моей ООП-структуры, которая сама и контролирует страницу с элементами, и данные, и их преобразование. Конечно, для достаточно простых страниц это слишком, а вот для слишком навернутых страниц, особенно со сложными активными таблицами, иногда незаменимая вещь. Так сказать, очень мотивированный пример.
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36417683
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, чтобы понять зачем ООП в JS, надо для начала к прототипированному программированию привыкнуть. После C++ будет не очень легко.
...
Рейтинг: 0 / 0
Мотивирующий пример применения ООП в js
    #36417876
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

покурите, например, ExtJS. Осознайте масштабы. Попробуйте представить ЭТО без ООП.
Мотивирует? :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Мотивирующий пример применения ООП в js
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]