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

Your 08.10.2012 11:40

<script type="text/javascript">
	function obj(val) {
		return{
			funct:function(set) {
				return{
					callback:function() {
						return val+' -> '+set;
					}
				};
			}
		};
	}
	alert(obj('Text object').funct('Funct name').callback());
</script>

tenshi 08.10.2012 17:24

суть фреймворка проще понять так:
в нормальном мире приложение используют библиотеки, в мире фреймворка библиотека использует приложения)
иначе говоря - фреймворк реализует некоторую инфраструктуру накладывающую некоторые ограничения на приложения, но взамен дающую некоторые удобства.

jquery - это конечно никакой не фреймворк.

melky 08.10.2012 17:45

Цитата:

Сообщение от tenshi (Сообщение 208843)
суть фреймворка проще понять так:
в нормальном мире приложение используют библиотеки, в мире фреймворка библиотека использует приложения)
иначе говоря - фреймворк реализует некоторую инфраструктуру накладывающую некоторые ограничения на приложения, но взамен дающую некоторые удобства.

jquery - это конечно никакой не фреймворк.

сложновато :)

попробую проще (это на грани ИМХО) :

Библиотека - сборище функций, методов, как в сундучке, направленных на решение одной задачи (не обязательно одной).

Фреймворк - каркас, на котором будет строиться приложение. Может использовать библиотеки, может реализовывать их сам.

tenshi 08.10.2012 18:40

тогда уж проще википедию процитировать) каркас предоставляющий точки расширения, реализуя которые, получаешь готовое приложение

Lynatik 09.10.2012 02:25

спасибо всем за ответы.вроде понял суть фреймворков.
Следуя критике dmitriymar сижу читаю основы, но ведь теория скучная без практики.
читал читал, так и не совсем понял насчет this.

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


var b;
b.col=function()
{
this.style.backgroundColor='black'; // это тоже самое, что и b.slyle.backgroundColor
}



а если обернуть эту функцию в другую, к примеру

function a()
{
	var b;
	b.col=function()
	{
		this.style.backgroundColor='black';
		return this;  //если тут вернуть this,
				      //то оно опять же будет возвращать b...
	}
	//и добавить еще что нибудь
	b.img=function()
	{
		this.style.backgroundImage='1.jpg';
		return this; //тут тоже возвращает b...
	}
	return b;
}

this.a=a;//будет как window.a

то, по идее, можно же вызывать a().b.col().img()

что я неправильно понимаю?

Lynatik 09.10.2012 02:46

Следуя сообщению выше,в частности, вот элементарный скрипт. пожалуйста, поругайте меня и ткните носом в баги.

(function(window){
	
function o_o(selector)
{
	var sel=selector+'';
	var id=document.getElementById(sel);
	
	id.col=function()
	{
		this.style.backgroundColor='red';
		return this;
	}
	
	id.font=function()
	{
		this.style.fontSize='100px';
		return this;
	}
	
	return id;	
}

window.o_o=o_o;	
})(window);

Dmitriyff 09.10.2012 10:26

для большего понимания что такое this пара статей с хабра
Ключевое слово this в javascript — учимся определять контекст на практике

Пять способов вызвать функцию

ну а по коду...
за чем вы делаете
var sel = selector+'';


лучше проверить является ли объект строкой и выдать ошибку, что неправильный параметр, и не дергать лишний раз DOM

если все таки искомого селектора не будет
var id = document.getElementById(sel);


id будет null и определение функций вызовет ошибку
так что перед определением надо делать проверку на null

Your 09.10.2012 11:36

"FrameWork" - значит собранный каркас для облегчения разработки или создания, какой либо модели для управления.

Как например "JQuery" библиотека содержит в себе компоненты и конкретные задачи.

Данный функционал переопределяет принципы разработки на javascript для более удобного использования и разных возможностей, без написания длинных кодов.


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