Я программирую для Интернета уже довольно давно, но только недавно обнаружил несколько новых тонкостей относительно использования функций и странных (или я так их считаю) вещей, которые вы можете делать с ними. Однако на данный момент они кажутся только синтаксически красивыми вещами. Я надеялся, что кто-то может просветить меня о том, как некоторые из этих недавно обнаруженных аспектов могут оказаться полезными.
Например, когда я впервые запустил это, я подумал, что оно не будет работать:
<script>
function x(q)
{
q(x);
}
x(function(a)
{
alert(a);
}
);
</script>
Но это так! Каким-то образом создание именованной функции, которая получает другую анонимную функцию в качестве единственного параметра, а затем запускает функцию, переданную ей вместе с самой передачей в качестве параметра, работает просто отлично. Это положительно сказалось на моем сознании, и я почти уверен, что в этом есть что-то полезное, но я просто пока не могу это понять.
Ах, и еще одна вещь, которую я был в восторге: используя глобальную переменную для хранения функции, можно позже при выполнении использовать функцию eval () в JavaScript для изменения этой переменной, таким образом динамически изменяя внутреннюю работу функции. Пример:
<script>
var f = function()
{
alert('old text');
}
eval('f = ' + f.toString().replace('old text', 'new text'));
f();
</script>
Конечно, этот код предупреждает строку "новый текст"; когда я увидел это, мой разум снова был взорван, но также сразу же заинтригован возможностью создания чего-то невероятного.
Итак ... мой животрепещущий вопрос о переполнении стека: как можно использовать такие, казалось бы, абстрактные принципы кодирования каким-либо положительным образом?