Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Переменная как значение функции. (https://javascript.ru/forum/misc/8958-peremennaya-kak-znachenie-funkcii.html)

Jurasmi 22.04.2010 11:38

Переменная как значение функции.
 
Прошу прощения, никак не соображу как это можно сделать "изящно":

Надо переменной присвоить результат выполнения функции - число.

Делаю двумя способами:

1 способ

var myFuncVal = function(){
    ...
    return x
}
	
console.log(myFuncVal());


В этом способе мне "не нравятся" скобки при вызове функции (но это и не удивительно - вызываю ведь функцию).
Нравится - то, что переменная описывается в одном месте, а не разнесена по разным кода.

2 способ

var myVar= myFunc();
	
function myFunc(){
    ...
    return x;
}

console.log(myVar);


Здесь мне нравится - что myVar вызывается без скобок.
Не нравится - переменная "описывается в двух местах" + появляется ненужное имя функции myFunc, которое нигде не используется.

Вопрос: как можно объединить эти два подхода (или есть третий, четвёртый, ...) и совместить их плюсы и отбросить минусы?

Может, конечно, мой вопрос содержит только бред и вообще не имеет никакого смысла, но уж снизойдите и втолкуйте мне "что к чему".

SkyLight 22.04.2010 12:01

Что значит "описывается в двух местах"? Переменная может быть "описана" (инициализирована) только один раз - при помощи var. Все остальное - это уже ее использование. И если вам надо присвоить переменной результат выполнения какой-то функции, то приведенный вами второй вариант как раз чаще всего и используется.

Jurasmi 22.04.2010 12:11

Мне нужно только значение переменной myVar и не нужна "фикивная" функция myFunc(), как можно от неё избавится или хотя бы от её имени? Можно сделать её "анонимной" (мне кажется лишним - придумывать имя для "фиктивной" функции).

Kolyaj 22.04.2010 12:15

Цитата:

Сообщение от Jurasmi
Здесь мне нравится - что myVar вызывается без скобок.

Оно не вызывается, оно до этого уже было вызвана. Со скобками, как положено. У вас скобкофобия?

Jurasmi 22.04.2010 12:18

Уфф, отлегло! Теперь я знаю как "это" называется - "скобкофобия"! Спасибо, доктор, вы так мне помогли.

DooMer 22.04.2010 12:22

что курит автор ?

Nekromancer 22.04.2010 12:26

Да будет свет!

var someVar = (function(){
   //...
   return result;
}());

Jurasmi 22.04.2010 12:45

Вот оно! Спасибо большое!


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