Ядро JavaScript 1.5. Руководство по использованию

         

Определение Функций


Определение функции состоит из ключевого слова function и

  • Имени функции.

  • Списка аргументов, заключённых в скобки и разделяемых запятыми.

  • Операторов JavaScript, составляющих содержание функции, заключённых в фигурные скобки { }. Операторы функции могут могут содержать вызовы других функций, определённых в текущем приложении.

     

  • Например, следующий код определяет простую функцию под названием square:

    function square(number) {

       return number * number;

    }

    Функция square принимает один аргумент - number. Функция состоит из одного оператора, который возвращает квадрат аргумента функции. Оператор return специфицирует значение, возвращаемое функцией.

    return number * number

    Все параметры передаются в функцию по значению; значение передаётся в функцию, но, если функция изменяет значение этого параметра, это изменение не отражается глобально или в вызывающей функции. Однако, если Вы передаёте в качестве параметра объект и функция изменяет свойства объекта, это изменение видно вне функции, как показано в примере:

    function myFunc(theObject) {



       theObject.make="Toyota"

    }

    mycar = {make:"Honda", model:"Accord", year:1998};

    x=mycar.make;     // возвращает Honda

    myFunc(mycar);    // передаёт функции объект mycar

    y=mycar.make;     // возвращает Toyota (prop было изменено функцией)

    Функция  может определяться на базе условия. Например, в данном определении функции:

    if (num == 0)
    {

       function myFunc(theObject) {

       theObject.make="Toyota"

       }

    }

    функция myFunc определена только в том случае, если переменная num равна 0. Если num не равна 0, функция не определена, и любая попытка выполнить её потерпит неудачу.

    Вы также можете определять Function-объекты, как описано в .

    Метод это функция, ассоциированная с объектом. Об объектах и методах Вы можете узнать больше в


    Функция может быть также определена внутри выражения. Это называется функцией выражения. Обычно такая функция безымянна/anonymous; она не должна иметь имени. Например, функция square может быть определена так:

    const square = function(number) {return number * number};

    Это удобно при передаче функции другой функции в качестве аргумента. В примере показана функция map, определяемая и вызываемая с анонимной функцией в качестве параметра:

    function map(f,a) {

       var result=new Array;

       for (var i = 0; i != a.length; i++)

          result[i] = f(a[i]);

       return result;

    }

    Вызов

    map(function(x) {return x * x * x}, [0, 1, 2, 5, 10];

    возвращает [0, 1, 8, 125, 1000].





    Содержание раздела