Javascript.RU

Function

Создание

new Function ([arg1[, arg2[, ... argN]],] functionBody)

Аргументы

arg1, arg2, ... argN
Имена параметров для создаваемой функции. Каждый аргумент должен быть строкой, которая является корректным идентификатором javascript или списком таких строк, разделенных запятой. Например: "x", "theValue" или "a,b".
functionBody
javascript-код тела функции

Описание, примеры

Каждая функция в яваскрипт является объектом класса Function.

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

Вызов конструктора Function как функции работает так же, как вызов с new. Иначе говоря, оператор new при вызове Function необязателен.

Пример: Пример создания функции
var multiply = new Function("x", "y", "return x * y")
// или так:
var multiply = new Function("x,y", "return x * y")

var theAnswer = multiply(7, 6);

Методы

call
apply

Свойства

length

См. также


Автор: yolka, дата: 29 декабря, 2009 - 01:18
#permalink

// более интересные пример работы объекта Function, в качестве данных:

function attr1(x, y) { // определяем функцию и ее механизм выполнения
          return x + y;
}

function attr2(x,y) { // определяем функцию и ее механизм выполнения
          return x * y;
}

/* передаем в качестве аргументов вышеопределенные функции и возвращаем значение для двух операндов */

function init(define, argument1, argument2){ 
          return define(argument1, argument2);
}

document.write(init(attr1, init(attr1, 5, 5), init(attr2, 5, 5))); // вызываем

Автор: Гость (не зарегистрирован), дата: 3 июля, 2011 - 19:47
#permalink

Вообще нужно добавить в эту же статью три способа создания функций:
1)Через new (и Function должно начинаться с большой буквы)
2)анонимные функции function () {} (function с маленькой буквы)
3)обычные function func () {}
Упомянуть также про переменную arguments.
Неполная статья, учитывая что на неё прямая ссылка из Справочника по JavaScript.


Автор: ferendy (не зарегистрирован), дата: 23 ноября, 2011 - 20:53
#permalink

Полностью поддерживаю, на счёт того что статья очень неполная.
В справочнике таким статьям не место.
Пусть лучше ничего не будет, чем недосказанности.

Я б ещё упомянул про то, что length выдаёт количество параметров, которые при объявлении функции были указаны.

То есть arguments.length и func.length скорей всего будут отличаться (потому что иногда вообще при объявлении функции не пишут параметры явно).

qwerty = function(a,b)
{
   return [this.length, arguments.length]
}

функция выдаст массив из двух элементов.

a = qwerty(1, 2, 3, 4);

a[0] - будет равно 2
a[1] - будет равно 4

а ещё функция может быть индексом массива =)))))
проверьте:

var myArr = [];
myArr[0]  = 123;
myArr["blablabla"] = 234234;
myArr[qwerty] = "А вот такое вы знали?";

Автор: ferendy (не зарегистрирован), дата: 23 ноября, 2011 - 20:55
#permalink

Ой, извиняюсь, внизу заметил ссылочки)))
Но тем не менее существование таких вещей стоило бы и в описании привести.


Автор: sawa (не зарегистрирован), дата: 5 января, 2012 - 22:09
#permalink

Я недавно изучаю JS) Почему перед названиями параметров функции отсутствует var?
К примеру:

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

Автор: cranx, дата: 1 февраля, 2012 - 15:15
#permalink

Параметры функции всегда становятся её локальными переменными, поэтому var там ни к чему...


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 7 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии