Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / определение и вызов функции / 19 сообщений из 19, страница 1 из 1
25.01.2013, 18:54
    #38125228
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
Всем привет.
Подскажите, плз, в чем проблема. Описываю функцию и делаю ее вызов сразу же. После этого хочу ее еще раз вызвать - не получается. Валится на строчке newf(7). То есть, я так понимаю он не распознает newf как указатель на функцию.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var a;
var newf = function(newv)
{
	a=5;
} ();

newf(7);


Заранее спасибо!
...
Рейтинг: 0 / 0
25.01.2013, 19:02
    #38125237
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_G, в переменную newf записывается результат выполнения анонимной функции, а не функция. Тебе нужно так написать:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var a;
var newf = function(newv)
{
	a=5;
};

newf();
newf(7);
...
Рейтинг: 0 / 0
25.01.2013, 19:11
    #38125244
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
bazile, спасибо! Приведенный Вами это стандартный способ. Я хотел через одновременный вызов, но видимо так нельзя :).
А вот в таком куске кода:
Код: javascript
1.
2.
3.
4.
5.
var shared = new function()
{
	this.prefill_field = function(ctx, item_ex, fld)
        ...
} ();


Получается с помощью анонимной функции создается объект и присваивается переменной shared? Повторно создать объект с использованием этой функции уже нельзя будет, да? То есть так объявить и вызвать можно только одноразовую функцию, верно?
...
Рейтинг: 0 / 0
26.01.2013, 00:51
    #38125467
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_GЯ хотел через одновременный вызов, но видимо так нельзя :).
Можно. Вопрос - нужно ли?
Код: javascript
1.
2.
3.
4.
5.
6.
var newf;
(newf = function(newv)
{
	a=5;
}).call();
newf(7);



MaximuS_GПолучается с помощью анонимной функции создается объект и присваивается переменной shared? Повторно создать объект с использованием этой функции уже нельзя будет, да? То есть так объявить и вызвать можно только одноразовую функцию, верно?
Да. Да. Да.
...
Рейтинг: 0 / 0
26.01.2013, 12:53
    #38125646
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
Спасибо большое! А Вы можете объяснить механику выражения, приведенного Вами?
bazile
Код: javascript
1.
2.
3.
4.
5.
6.
var newf;
(newf = function(newv)
{
	a=5;
}).call();
newf(7);
...
Рейтинг: 0 / 0
26.01.2013, 14:01
    #38125684
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_G, оператор присвоения в JS возвращает значение из правой части и мы этим пользуемся чтобы выполнить действие с ним. В данном случае мы имеем объект-функцию у которой и вызываем метод call.
...
Рейтинг: 0 / 0
26.01.2013, 14:49
    #38125706
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
bazileMaximuS_G, оператор присвоения в JS возвращает значение из правой части и мы этим пользуемся чтобы выполнить действие с ним. В данном случае мы имеем объект-функцию у которой и вызываем метод call.
Ага, спасибо, кажется понял. А так не получилось бы?
Код: javascript
1.
2.
3.
4.
5.
(var newf = function(newv)
{
	a=5;
}).call();
newf(7);
...
Рейтинг: 0 / 0
28.01.2013, 14:28
    #38127288
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_GbazileMaximuS_G, оператор присвоения в JS возвращает значение из правой части и мы этим пользуемся чтобы выполнить действие с ним. В данном случае мы имеем объект-функцию у которой и вызываем метод call.
Ага, спасибо, кажется понял. А так не получилось бы?
Код: javascript
1.
2.
3.
4.
5.
(var newf = function(newv)
{
	a=5;
}).call();
newf(7);


Проверил сам, не работает так - свал :). Интересно было бы механику понять.
...
Рейтинг: 0 / 0
28.01.2013, 14:31
    #38127293
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_GИнтересно было бы механику понять.в консоли Хрома
Код: javascript
1.
2.
3.
4.
5.
6.
7.
(var newf = function(newv)
{
	a=5;
}).call();
newf(7);

SyntaxError: Unexpected token var



нельзя объявить переменную внутри скобок.
...
Рейтинг: 0 / 0
28.01.2013, 15:16
    #38127391
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
Яростный Мечнельзя объявить переменную внутри скобокСпорим можно?
...
Рейтинг: 0 / 0
29.01.2013, 13:50
    #38128782
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
AntonariyЯростный Мечнельзя объявить переменную внутри скобокСпорим можно?
Как? :)
...
Рейтинг: 0 / 0
29.01.2013, 14:32
    #38128899
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
for(var x=0;x<y;x++)

:))
...
Рейтинг: 0 / 0
29.01.2013, 14:45
    #38128945
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
Antonariy
Код: javascript
1.
for(var x=0;x<y;x++)


Шайтан курбаши!!!
...
Рейтинг: 0 / 0
29.01.2013, 14:57
    #38128974
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
MaximuS_GВсем привет.
Подскажите, плз, в чем проблема. Описываю функцию и делаю ее вызов сразу же. После этого хочу ее еще раз вызвать - не получается. Валится на строчке newf(7). То есть, я так понимаю он не распознает newf как указатель на функцию.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var a;
var newf = function(newv)
{
	a=5;
} ();

newf(7);


Заранее спасибо!

надо писать то что вы хотите, а не то, как вам кажется
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var a;
var newf = function(newv)
{
    return function(){
	a = newv ? newv : 5;
    }
} ();

newf(7);
...
Рейтинг: 0 / 0
29.01.2013, 14:58
    #38128977
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
и я тоже торможу
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var a;
var newf = function()
{
    return function(newv){
	a = newv ? newv : 5;
    }
} ();

newf(7);
...
Рейтинг: 0 / 0
29.01.2013, 15:01
    #38128982
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
даже не торможу, просто туплю, терь правильно.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var a;
var newf = function()
{
    a = 5;
    return function(newv){
	a = newv;
    }
} ();

newf(7);
...
Рейтинг: 0 / 0
29.01.2013, 17:58
    #38129368
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
mage.lanдаже не торможу, просто туплю, терь правильно.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var a;
var newf = function()
{
    a = 5;
    return function(newv){
	a = newv;
    }
} ();

newf(7);


Отличное решение! Это замыкание в какой-то степени, да?
Спасибо большое!
...
Рейтинг: 0 / 0
29.01.2013, 19:08
    #38129535
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
mage.lan,
есть одна проблема с таким подходом - необходимо дублировать код в обоих функциях. Или я не прав?
...
Рейтинг: 0 / 0
30.01.2013, 18:57
    #38131251
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение и вызов функции
up
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / определение и вызов функции / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]