Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Массивы; Функция в виде аргумента (https://javascript.ru/forum/misc/25980-massivy%3B-funkciya-v-vide-argumenta.html)

(Sandr) 21.02.2012 18:03

Массивы; Функция в виде аргумента
 
Подскажите по 2м вопросам?

1й. Передаю в функцию ассоциативный массив:
nameOfFunc({key: {subKey: value, subKey2: value2 /*и так далее*/}});

Как можно узнать все ключи и их значения в "key"?

2й. Можно ли передать функцию в виде аргумента другой функции, а потом запустить где-то в теле функции где нужно? Читал где-то, что можно, но сейчас найти не могу.
Нужно что-то в роде этого:
MyFunc(a,b,c, function () { alert('текст')}) .
И в теле MyFunc где мне нужно я её запущу.

(Sandr) 21.02.2012 18:40

nasqad,
дело в том, что я не знаю как запустить функцию, если она является аргументом..
Предполагаю, что нужно что-то типа этого:
function MyFunc(a,b,c,d) {
d();
}

9xakep 21.02.2012 18:57

<script>
function a(func) {
return typeof arguments[0] //получаем первый аргумент ф-ии
}
alert(a(function () { alert('a') })) // првоерим, является ли наш "подставленный" аргумент ф-ией
</script>

(Sandr) 21.02.2012 19:04

9xakep,
возможно вы меня не поняли. Мне не нужно узнавать является ли аргумент функцией или нет. Мне нужно запустить функцию переданную как аргумент.

Mахmахmахimus 21.02.2012 19:09

Цитата:

Сообщение от (Sandr)
Предполагаю, что нужно что-то типа этого:
function MyFunc(a,b,c,d) {
d();
}

а что мешало попробовать? я реально в раздумьях щас, это же так сложно попробовать прежде чем пост создавать? то есть ты щас сидишь ждешь ответ и не пробуешь поставить скобочки после буквы d?

kobezzza 21.02.2012 19:09

function (callback) { callback(); }

(Sandr) 21.02.2012 19:10

Mахmахmахimus,
собственно, уже попробовал))
Всем спасибо)

Mахmахmахimus 21.02.2012 19:11

Цитата:

Сообщение от (Sandr)
собственно, уже попробовал))

почитай тут статьи про функции что ли)

(Sandr) 21.02.2012 19:24

Mахmахmахimus,
я почитываю временами. Просто тут остаточного много интересного материала, по этому иногда теряюсь в том, что читать первым))

9xakep 21.02.2012 21:57

<script>
function a1() {
  alert('я а1')
}
function a2(func) {
  arguments[0]
}
a2(a1())
</script>

Я вам это пытался объяснить


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