Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Суть фреймворка (https://javascript.ru/forum/events/32206-sut-frejjmvorka.html)

Lynatik 07.10.2012 16:21

Суть фреймворка
 
Добрый день.
Возникло задание написать свой js фреймворк.
Погуглил я значит, чтобы понять. Но только еще больше запутался. Как я понимаю, фреймворк- это каркас, штука, которая соединяет различные компоненты приложения.
только вот прочитал, что jQuery- это фреймворк, а я всегда думал что обычные библиотеки.
В чем вообще отличие фреймворков от библиотек и чем суть фреймворков?
И может ли кто нибудь привести код самого простого и элементарного(собственног ) фреймворка, который выполняет самую элементарную функцию- чтобы на его примере я понял?
Если кто откликнется- спасибо огромное

Your 07.10.2012 16:52

JQuery

Lynatik 07.10.2012 17:34

о_О эээ
правильно ли я понял- чтобы создать новый фреймворк- мне просто надо создать функции, которые будут выполнять какие то действия. потом создать команды, и эти комады приравнять к функция. чтобы когда в скрипте вводилась команда она уже знала заведомо, что она будет делать?(криво как то написал)
может кто приведет пример такой хоть из 5-10 строчек?

Your 07.10.2012 18:19

Для какой цели вы будете писать Framework?
Если для себя, то это должны придумать вы.

Lynatik 07.10.2012 18:44

Вроде уже более- менее разобрался с этим. спасибо за ответы

Serg_pnz 07.10.2012 19:08

Lynatik,
в вики не судьба посмотреть?))

Lynatik 07.10.2012 23:37

Serg_pnz Смотрел.что то вот пробую.я просто новичок в этом, поэтому все туго идет еще. туго, но интересно)
Возник еще вопрос. зачем фреймворк заключают во временную функцию?
(function(window) {
})(window);

Вот,к примеру, к примеру, скрипт с названием frame.js. если заключать в эту функцию, то не работает. А если не заключать, то все работает, и прямоугольник нормально закрашивается в красный.
(function(window)
{
	function IsString(selector)
	{
		return typeof(selector)=='string';
	}
	
	function o_O(selector)
	{
		//является ли селектор строкой
		var obj=IsString(selector)?document.getElementById(selector):selector;
		
		//меняем класс CSS
		obj.name=function(clname)
		{
			this.className=clname;
			return this;
		}
		
		//цвет фона
		obj.pic=function()
		{
			obj.style.backgroundColor='red';
			return this;
		}
		
		
		return obj;
	}
})(window);



А вот html с прямоугольником

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Тестирование фреймворка</title>
<script type="text/javascript" src="frame.js"></script>
</head>

<body>
<script language="javascript">
function fon()
{
	o_O('id').pic();
}
</script>
<form>
<input type="button" value="первая" onClick="fon()">

<div id="id" style="width:400px; height:300px; border:3px solid black;">
</div>

</body>
</html>

dmitriymar 08.10.2012 00:19

Цитата:

Сообщение от Lynatik
Возник еще вопрос. зачем фреймворк заключают во временную функцию?

чтобы не засорять глобальную область видимости.
в приведённом выше коде -не зачем.
ошибки в каждой строке. Я конечно понимаю, что это передранный фрамевёрк + ошибки .
копать -с какой целью расширяется, для чего методы возвращают this ....
Вобщем учить основы
С такими вопросами ещё рано думать о либах и фрамевёрках. Знания о замыканиях и прочем, судя по всему,
отсутствуют.
Цитата:

Сообщение от Lynatik
Вот,к примеру, к примеру, скрипт с названием frame.js. если заключать в эту функцию, то не работает.

Встречный вопрос-почему ,по вашему мнению, он должен работать?

Lynatik 08.10.2012 00:35

dmitriymar,
я думал возврат this нужен для того, чтобы можно было подряд несколько методов через точку указывать.
так я и учу основы. и периодически спрашиваю то, что не понимаю. нельзя в одночасье стать очень шаристым в чем-то.
спасибо Вам за критику)

dmitriymar 08.10.2012 00:37

Цитата:

Сообщение от Lynatik
я думал возврат this нужен для того, чтобы можно было подряд несколько методов через точку указывать.

так и есть. только вот, подумайте на что он указывает
Цитата:

Сообщение от Lynatik
так я и учу основы. и периодически спрашиваю то, что не понимаю. нельзя в одночасье стать очень шаристым в чем-то.

под основами я имел в виду именно основы языка,а не основы построения фрамевёрков
http://www.ozon.ru/context/detail/id/6287517/


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