Как задать функцию в качестве одного из аргументов?

Старый mweb

Модератор: [mweb team]

Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Ср ноя 05, 2008 17:26

Не поместилось в заголовке: как задать какую-либо функцию в качестве одного из аргументов другой функции? Не нашел чота в своем справочнике похожей фигни никакой. короче смысл в том что мне надо в рекурсивной ф-ции на определенном этапе вызывать другую функцию (уменьшая картинку надо ее каждый раз выравнивать по центру экрана при каждой итерации). попробовал написать вот так:

removePic(arg1, arg2,..,"findCenter(arg1,arg2)")

не прокатило. попробовал в самой ф-ции removePic когда наступает момент работы findCenter написать:

if(removePic.arguments[соотв.номер]){eval(removePic.arguments[соотв.номер])}

тоже нифига не прокатило. я как-то раньше с такой задачей не сталкивалсо подскажите кто в курсе пожалуйста люди добрые а то все документы украли и никак не можем в Туркмению вернуться на родину историческуйу...
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Jedi Ср ноя 05, 2008 21:15

А нельзя сделать чтоли arg3 = findCenter(arg1,arg2)?
Аватара пользователя
Jedi
Хронический Астматик
 
Сообщения: 1852
Зарегистрирован: Вс сен 08, 2002 0:01
Откуда: Russia

Re: Как задать функцию в качестве одного из аргументов?

Сообщение kost Чт ноя 06, 2008 9:53

Какой язык?
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Как задать функцию в качестве одного из аргументов?

Сообщение kost Чт ноя 06, 2008 9:54

Если JS, то:
Код: Выделить всё
removePic(arg1, arg2,..,findCenter(arg1,arg2))
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Чт ноя 06, 2008 10:11

kost
ага - JS.
у меня так не работало... это было первое что я попробовал.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Чт ноя 06, 2008 10:12

Jedi
ну если бы получилось сразу разве стал бы я вам моск парить?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Muerto Чт ноя 06, 2008 12:39

removePic(arg1, arg2,.., arg3 = new findCenter(arg1,arg2))
А так прокатит? И кинь мне код на мыло, чтобы я мог поэксперементировать.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Чт ноя 06, 2008 16:52

код дома у меня а интернета у меня все еще там нет так что его тока завтра смогу принести.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Пт ноя 07, 2008 10:14

вот вам код. в скрипте есть коммент на месте косяка.

поясню точнее что я пытался сделать. в хтмл-файле есть скрипт раздающий картинкам всякие онклики и т.д. в нем есть вот такие строчки:
Код: Выделить всё
dim[i].ondblclick = function(){
if(agent.indexOf("MSIE") != -1){removePic(this.id, "", this.width, this.height, 100);}
if((agent.indexOf("Opera") != -1) || (agent.indexOf("Firefox") != -1)){removePic(this.id, "", this.width, this.height, 1.0);}
else{removePic(this.id, "", this.width, this.height, "");}
}


идея состоит в том что в качестве аргумента ф-ции ремувПик может выступать не только файндСентер но и любая другая ф-ция иначе просто можно было бы прописать вызов файндСентер прямо в код ремувПик (как там щас и сделано) и не размножать себе моск. но если я пишу в отрывке приведенном выше вот так removePic(this.id, "", this.width, this.height, "", findCenter(this.id)) то файндСентер не пашет -42-
Вложения
code.rar
(72.25 Кб) Скачиваний: 447
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Muerto Пт ноя 07, 2008 13:10

Никак не могу активизировать мозговые клетки чтобы догнать что именно у тебя не выходит. Функции нормально вызываются. К примеру:
Код: Выделить всё
<script language="JavaScript" type="text/javascript">
<!--
function setAlert(vol){
alert(vol);
}
function setImages(){
var dim = document.images;
for(var i = 0; i < dim.length; i++){
if(!dim[i].id){dim[i].setAttribute("id","pic_" + i);}
/*dim[i].onmouseover = function(){
this.style.border = "1px dashed #000";
var w = this.width; this.width = w - 1;
var h = this.height; this.height = h - 1;
}
dim[i].onmouseout = function(){
this.style.border = "none";
var w = this.width; this.width = w + 1;
var h = this.height; this.height = h + 1;
}*/
dim[i].onclick = function(){findCenter(this.id, "pointer", "картинка '" + this.src.substring(this.src.lastIndexOf("/") + 1, this.src.length - 4) + "'", al = new setAlert(this.id));}
dim[i].ondblclick = function(){
if(agent.indexOf("MSIE") != -1){removePic(this.id, "", this.width, this.height, 100);}
if((agent.indexOf("Opera") != -1) || (agent.indexOf("Firefox") != -1)){removePic(this.id, "", this.width, this.height, 1.0);}
else{removePic(this.id, "", this.width, this.height, "");}
}
}
}
//-->
</script>
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Пт ноя 07, 2008 16:49

я не в онклик вставлял а в ондаблклик в ремувПик... но вот так al = new setAlert(this.id) я не пробовал. седня проверю.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Пн ноя 10, 2008 14:32

Муерта вобщем я и так и эдак пробовал - не пашет нифига... ты как после дня ментов отойдешь может-таки чо пацкажешь а? возможно имеет значение тот факт что я пытаюсь подставить это в рекурсивную функцыйу которая глючит при вызове самой себя?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как задать функцию в качестве одного из аргументов?

Сообщение kost Пн ноя 10, 2008 15:03

Не пашет нифига -- в чем проявляется? Какая ошибка?
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Как задать функцию в качестве одного из аргументов?

Сообщение Padonak Пн ноя 10, 2008 15:43

чота типа cannot convert undefined or null to object щас точно не скажу но вроде эта ошибка (в консоли ошибок Оперы) а в фаерфоксе кажется что-то типа node not found
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

cron