return {блок}
Скажите, когда и для чего используется конструкция, где после return стоит блок?
что он возвращает и как ей пользоваться? просто (function(){ return {1} })(); выдает ошибку missing : after property id спасибо. |
фигурные скобки говорят о том что функция возвратит объект, в вашем случаем выдается ошибка из - за того, что для ключа 1 нету соответсвующего значения.
Без ошибок будет, например так: (function(){ return { 1: 1 } })(); |
ретурн не принимает блоки, по этому будет синтаксическая ошибка.
а так, блок возвращает результат последнего выполненного выражения |
Цитата:
|
Цитата:
Цитата:
Про "выражения" и "возвраты результатов" ни слова... ;) |
Цитата:
Функция может возвращать все что угодно, в частности и объект (пустой или не пустой) (function() { return {}; }());зачем вводить людей в заблуждение ?? |
Цитата:
Цитата:
alert( eval('{1+2}') ) ивал возвращает результат последнего выражения, последнее выражение это блок, блок возвращает результат последнего выражения в нем. |
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, в котором это есть или я чего-то не понимаю?) |
Vampir3, да, ты не понимаешь чем обьект отличается от блока =) все просто.
|
ах, я всё понял
всё верно, это же объект |
и если честно то я считаю это ошибкой, то что нельзя присваивать блоки. эта ошибка возникла тупо из за неоднозначности при парсинге. вот и все. в самой логике экмы такое не запрещено, блок это как запятая только круче:
return 1,2,3; вернет 3; return {1+2; 3+4}; должно по идее вернуть 7 но парсер думает что мы декларируем обьект и кидает ошибку =) Я считаю это глупостью, и я считаю что ни какой неоднозначности нет, парсер способен отличить декларацию обьекта от блока =) по крайней мере я бы сделал такой парсер. |
Цитата:
|
Цитата:
alert({2+1}); Цитата:
|
Цитата:
Цитата:
|
Цитата:
![]() |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
У меня начинает создаваться впечатление что обитатели этого форума на столько тупые что за исключением 1-3 человек даже не понимают о чем я говорю =) ну то есть они на столько технически не грамотные, что вещи о которых я им говорю им кажутся магией, или я не прав? Цитата:
Это называется дядя Леша зашел в раздел общи вопросов где новички сидят :) ksa, чувак, ладно он, но я не думал что ТЫ такой нуб.. Не, ну правда... Сравни карму свою и мою. Как так можно то? А это вам нубам на закуску =) ![]() ![]() дело в том что блоки не могут участвовать в выражениях, из за возможности перепутать их с обектами =) но я считаю что там неоднозначности нет и я бы написал такой парсер который бы корректно хавал это =) Вот кстати вам еще один пример некорректного парсинга: ![]() Грубо говоря они прописали правило "блоки не могут учавствовать в выражениях" и он думает что {34} + 11 это {34}; +11 В принципе может это и логично так как нет острой необходимости использовать блок в выражениях, а парсинг при этом усложняется и держу пари там есть какие-то неоднозначности, но я думаю все же можно обойти их. я бы обошел. |
Ну чо, куда вы подевались то)? Я хочу наслаждаться вашими глазами сфоткайте пожалуйста ваши лица ^__^ я хочу на них посмотреть щас.
|
Maxmaxmaximus3
ты своими фанатическими домыслами не сумеешь ниче тут доказать/опровергнуть. Специально ради тебя полез в стандарт ecma проверить инструкцию return. return statement. Там не говорится что return принимает данные и точка. return возращает, принимая результат выполнения функции. Важен конечный результат инструкции, а не начальный. Иди своим колхозным подходом студентов однокурсников запугивай. |
я не понял твою мысль, я что-то не так говорю что не является правдой? ВОПРОС: что?
|
Maxmaxmaximus3,
твои слова не имеют практического значения |
Цитата:
Цитата:
Цитата:
приниМАЯ это форма слова принимаЕТ, глупый =) |
все, девочки, ответить нечего? а ну убежали под шконку тогда) дядя Леша господствует. я бог яваскрипта
|
Цитата:
- А мой меня назвал зайкой бала! - Так прям и назвал? - Да. Так и сказал "ты заябала!!!" |
шути еще, ты шутишь смешно
|
Часовой пояс GMT +3, время: 17:06. |