Оглавление

15.8. Класс Function (функции)

Класс Function позволяет использовать функцию как экземпляр класса. Делается это таким образом:
<Имя функции> = new Function(<Параметр1>, ... , <ПараметрЫ>, <Тело функции>);
Например, функцию суммирования двух чисел

  function f_Sum(x, y) {
     return x + y;
  }

можно переписать так:

  var f_Sum = new Function ("x", "y", "return x + y");

Указывать "тело" функции в виде строки очень неудобно. По этой причине данным способом никто не пользуется.

Вместо него применяются анонимные функции:

  var f_Sum = function(x, y) {
     return x + y;
  };

Вызывать функцию можно так же, как и раньше:

  document.write(f_Sum(5, 6)); // 11

При использовании анонимных функций следует учитывать, что при указании внутри функции глобальной переменной будет сохранена ссылка на эту переменную, а не на ее значение:

  var x = 5;
  var f_Sum = function() {
     return x; // Сохраняется ссылка, а не значение переменной x !
  };
  document.write(f_Sum()); // 5
  x = 10; // Изменили значение
  document.write(f_Sum()); // 10, а не 5
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити