Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Несколько вопросов (https://javascript.ru/forum/misc/18313-neskolko-voprosov.html)

monolithed 26.06.2011 20:33

Цитата:

Сообщение от (Sandr)
Извиняюсь за тупость, что значит опредиление?

var foo = function() {}();

var - объявление (declaration)
foo - переменная (variable)
function() {} - определение (definition)
() вызов (calling)

TicTac 26.06.2011 21:27

(Sandr), Вас наверно не оставляет в покое вопрос как это переменой присвоить функцию, а не ее результат. Так как в других языках программирования это просто невозможно. Можно ее только описать потом вызвать..

Тут все просто переменной можно присвоить функцию так же как и переменой присвоить число например или строку.

Только чтобы потом выполнить эту функцию нужно еще использовать оператор вызова переменная(функция)().

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

(Sandr) 26.06.2011 22:40

Если взять 2 выше приведённых примера:

<script>
document.onmousemove = function() {
alert(this);
};
</script>


<script>document.onmousemove = function() {
alert(this);
}();
</script>

По моей логике, они должны выдавать одинаковый результат. В первом случае выводится из-за того, что мышь двигается, во 2м из-за того, что функция сначало вызвала сама себя, а потом из-за того, что мышь двигается.

Чёт я запутался в этих функциях :blink:

(Sandr) 26.06.2011 22:42

Ааа.. до меня дошло))

(Sandr) 26.06.2011 22:43

Спасибо за ваши объяснения) И за то, что не послали... читать книжку)

lovial 05.07.2011 15:25

Дабы не плодить отдельный топик, решил спросить тут (тема, ИМХО, соответствует).
Есть таблица, в ячейках которой есть селекты, инпуты, выводятся данные при помощи innerHTML. К селектам и инпутам через онченч привязана функция, которая считывает значения ячеек в строке по ид (например, а11, д11 и т.д.), обрабатывает их и выводит в ячейки результаты.
Каким способом можно модифицировать функцию, чтобы она обрабатывала данные по всем строкам таблицы (в данный момент она работает только с одной строкой таблицы). Понимаю, что есть несколько путей решения, хотелось бы о них узнать и их плюсы-минусы.

ksa 05.07.2011 16:54

Цитата:

Сообщение от lovial
К селектам и инпутам через онченч привязана функция, которая считывает значения ячеек в строке по ид (например, а11, д11 и т.д.), обрабатывает их и выводит в ячейки результаты.
Каким способом можно модифицировать функцию, чтобы она обрабатывала данные по всем строкам таблицы (в данный момент она работает только с одной строкой таблицы).

Переписать функцию так, чтобы исключить использование ИД элементов...

lovial 05.07.2011 18:56

А если передать в функцию цифры при ИД? Буквы у ИД одинаковые... Т.е. функция обращается к ИД вида ХХ11 при обработке первой строки, ХХ22 - второй и т.д.

ksa 06.07.2011 09:35

Цитата:

Сообщение от lovial
А если передать в функцию цифры при ИД? Буквы у ИД одинаковые...

Это не особо изменит твой вариант...

Нужно использовать чёткую структуру таблицы и этими сведениями оперировать.

Если будет тестовый пример - на нём можно будет показать уже конкретно...

lovial 06.07.2011 13:41

Попробовал. Вызов функции <select size="1" id="plot11" value="Плотность" style="width: 50px" onchange="rz1(11)">
функция
function rz1(ind)
{tol = document.getElementById("plot" + ind).value}
работает нормально...


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