Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.12.2013, 10:39
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

return {блок}
Скажите, когда и для чего используется конструкция, где после return стоит блок?
что он возвращает и как ей пользоваться?
просто
(function(){
return {1}
})();

выдает ошибку missing : after property id

спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 05.12.2013, 10:56
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

фигурные скобки говорят о том что функция возвратит объект, в вашем случаем выдается ошибка из - за того, что для ключа 1 нету соответсвующего значения.
Без ошибок будет, например так:
(function(){
	return {
		1: 1
	}				
})();
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2013, 15:23
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

ретурн не принимает блоки, по этому будет синтаксическая ошибка.
а так, блок возвращает результат последнего выполненного выражения
Ответить с цитированием
  #4 (permalink)  
Старый 05.12.2013, 15:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Maxmaxmaximus3
блок возвращает результат последнего выполненного выражения
Тут кагбе примерчик этого посмотреть ...
Ответить с цитированием
  #5 (permalink)  
Старый 05.12.2013, 15:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Maxmaxmaximus3
а так, блок возвращает результат последнего выполненного выражения
Цитата:
Блок

Группировка javascript-вызовов внутри фигурных скобок
Синтаксис
{
	   statement_1
	   statement_2
	   ...
	   statement_n
	}

Аргументы
statement_1, statement_2, ..., statement_n
Вызовы внутри блока
http://javascript.ru/Blok

Про "выражения" и "возвраты результатов" ни слова...
Ответить с цитированием
  #6 (permalink)  
Старый 05.12.2013, 16:22
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Maxmaxmaximus3 Посмотреть сообщение
ретурн не принимает блоки, по этому будет синтаксическая ошибка.
а так, блок возвращает результат последнего выполненного выражения
что значит ретурн не принимает блоки ??? ошибка из-за того, что литерал возвращаемого объекта не корреткно был написан.
Функция может возвращать все что угодно, в частности и объект (пустой или не пустой)
(function() {
   return {};
}());
зачем вводить людей в заблуждение ??

Последний раз редактировалось Arramis, 05.12.2013 в 16:31.
Ответить с цитированием
  #7 (permalink)  
Старый 05.12.2013, 17:52
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от Arramis
что значит ретурн не принимает блоки ???
это как ретурн принимает блоки, только наоборот, глупенький =)

Сообщение от ksa
Про "выражения" и "возвраты результатов" ни слова...
всему тебя учить =)
alert( eval('{1+2}') )

ивал возвращает результат последнего выражения, последнее выражение это блок, блок возвращает результат последнего выражения в нем.
Ответить с цитированием
  #8 (permalink)  
Старый 05.12.2013, 17:54
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

var tzdragg = function() {
	return {
		startMoving : function(evt) { 
			evt = evt || window.event;
			var posX = evt.clientX,
			posY = evt.clientY, 
			a = $('elem'),
			divTop = a.style.top,
			divLeft = a.style.left;
			divTop = divTop.replace('px','');
			divLeft = divLeft.replace('px','');
			var diffX = posX - divLeft,
			diffY = posY - divTop; 
			document.onmousemove = function(evt){ 
				evt = evt || window.event;
				var posX = evt.clientX,
				posY = evt.clientY,
				aX = posX - diffX, 
				aY = posY - diffY; 
				tzdragg.move('elem',aX,aY); 
			}
		},
		stopMoving : function() {
			document.onmousemove = function(){}
		},
		move : function(divid,xpos,ypos){
			var a = $(divid);
			$(divid).style.left = xpos + 'px';
			$(divid).style.top = ypos + 'px';
		}
	}
}();


ну вот например кусок кода для drag&drop, в котором это есть
или я чего-то не понимаю?)
Ответить с цитированием
  #9 (permalink)  
Старый 05.12.2013, 17:55
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Vampir3, да, ты не понимаешь чем обьект отличается от блока =) все просто.

Последний раз редактировалось Maxmaxmaximus3, 05.12.2013 в 17:59.
Ответить с цитированием
  #10 (permalink)  
Старый 05.12.2013, 17:55
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

ах, я всё понял
всё верно, это же объект
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции Hol1killer Prototype & script.aculo.us 11 05.12.2016 01:37
скрипт вставить bb-коды в мою форму ПОМОГИТЕ адаптировать Краса Общие вопросы Javascript 4 14.03.2013 00:33
Помогите разобраться ŞΘLƉiΞR Общие вопросы Javascript 2 28.08.2012 11:57
регулярки: замена ссылки на ютуб Hekumok Общие вопросы Javascript 105 01.08.2012 10:48
Свойства посредством полиморфных функций tenshi Ваши сайты и скрипты 0 18.03.2010 17:12