Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2012, 20:24
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

небольшой вопрос по ООП
я понимаю что на данный вопрос можно найти ответ в какой нибудь большой статье про ооп но уже голова не вариант больше 8 часов писал скрипт и голова не варит уже нашел 2 хороших статьи но уже буквы расплываюсь. Помогите пожалуста.
в чем суть проблемы :
делаю для нескольких скриптов свою библеотеку , покажу проблему на примере такого кода:
function mouse (e)
{
	var x, y;
if (e.pageX == "null" && e.clientX != "null")
{
	var scrollX, scrollY, body, html;
	body = document.body;
	html = document.documentElement;
	scrollX = html.scrollLeft || body && body.scrollLeft || 0;
	scrollY = html.scrollTop || body && body.scrollTop || 0;
	x = e.clientX + scrollX - (html.clientLeft || body.clientLeft || 0);
	y = e.clientY + scrollY - (html.clientTop || body.clientTop || 0);
	}	
else {
	x = e.pageX;
	y = e.pageY;
	}
	
	return {x: x , y: y}
}

вызвав функцию так mouse(event).x я получу свойство функции x.
если я напишу так
var obj ={};
obj.x = function (e) {}
obj.y = function (e) {}

то я смогу получить доступ через вызов обьекта obj и его методов x,y я получу значение x,y.
но я не хочу разделять на 2 отдельных метода возможно ли это реализовать в одном
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2012, 20:38
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
вызвав функцию так mouse(event).x я получу свойство функции
Вы получите свойство объекта, который возвращает функция
А вообще не понял, чего вы хотите. Объясните пожалуйста поподробнее
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2012, 20:44
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

возможно ли для функции mouse создать два метода х ,y в нутри функции?
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2012, 21:09
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от cyber Посмотреть сообщение
вызвав функцию так mouse(event).x я получу свойство функции x.
У функции нет свойств и методов-они есть только у объектов
и в данном случае это свойства объекта {x: x , y: y}
а вовсе не функции
Ответить с цитированием
  #5 (permalink)  
Старый 13.05.2012, 21:17
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

понятненько.
а вот данный код создает обьект dragMaster с методом init ?
var dragMaster = (function() {
	// private методы и свойства
	var dragObject
	
	function mouseDown(e) {
		клик на переносимом элементе: начать перенос
	}

	function mouseMove(e){
		if (dragObject) {
			отобразить перенос объекта
		}
	}
		
	function mouseUp(e){
		if (dragObject) {
			конец переноса
		}
	}

	// public методы и свойства	
	return {
		init: function() {
			// инициализовать контроллер
			document.onmousemove = mouseMove
			document.onmouseup = mouseUp
		},
		
		makeDraggable: function(element){
			// сделать элемент переносимым
			element.onmousedown = mouseDown
		}
	}
	
}())
Ответить с цитированием
  #6 (permalink)  
Старый 13.05.2012, 21:33
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от cyber Посмотреть сообщение
понятненько.
а вот данный код создает обьект dragMaster с методом init ?
cоздает
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2012, 00:06
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

все разобрался , все спс=)
Ответить с цитированием
  #8 (permalink)  
Старый 14.05.2012, 01:11
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

включился мозг и появилось такое решение
var mouse ={
	pos: function ()
{
	var x, y,e;
	e = event;
if (e.pageX == "null" && e.clientX != "null")
{
	var scrollX, scrollY, body, html;
	body = document.body;
	html = document.documentElement;
	scrollX = html.scrollLeft || body && body.scrollLeft || 0;
	scrollY = html.scrollTop || body && body.scrollTop || 0;
	x = e.clientX + scrollX - (html.clientLeft || body.clientLeft || 0);
	y = e.clientY + scrollY - (html.clientTop || body.clientTop || 0);
	}	
else {
	x = e.pageX;
	y = e.pageY;
	}
	
return {x : x , y: y}
	 
	
},

   x: function ()
   {
	 return mouse.pos().x;  
	   
	   },
	   
   y: function ()
   {
	 return mouse.pos().y;  
	   
	   }


};
Ответить с цитированием
  #9 (permalink)  
Старый 14.05.2012, 18:01
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от vadim5june
У функции нет свойств и методов-они есть только у объектов
Да будет вам известно, что функции - тоже объекты
function a() {
 alert('a');
}
a.x = 5;
a.y = 12;
alert('('+a.x+';'+a.y+')');
Ответить с цитированием
  #10 (permalink)  
Старый 14.05.2012, 19:10
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Раед Посмотреть сообщение
Да будет вам известно, что функции - тоже объекты
Да Вы правы

Последний раз редактировалось vadim5june, 14.05.2012 в 19:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по ООП uaNikita Общие вопросы Javascript 4 29.04.2012 18:50
Небольшой вопрос по рег выр qwertyuiop10 Общие вопросы Javascript 10 25.01.2012 13:58
ООП PHP вопрос mycoding Серверные языки и технологии 9 03.06.2010 01:57
Небольшой вопрос по jQuery deepslam jQuery 10 29.01.2010 23:19
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 13:50