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 - 00: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 - 18:47
#permalink

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


Автор: ferendy (не зарегистрирован), дата: 23 ноября, 2011 - 19: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 - 19:55
#permalink

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


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

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

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

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

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


Автор: realstranger, дата: 18 августа, 2015 - 11:35
#permalink

Потому что X и Y - это аргументы, а не переменные.


Автор: Андрей+ (не зарегистрирован), дата: 7 июля, 2012 - 12:49
#permalink

Можете объяснить подсказать литературу вот такого синтаксиса (function() {})();


Автор: Дзен-трансгуманист, дата: 7 июля, 2012 - 18:17
#permalink

Таким способом создается замыкание, которое тут же исполняется.

Основная идея здесь в том, что после каждого вызова внутри такой конструкции возникает как бы замкнутая на самой себе область видимости (каждый раз - новая) со своими собственными переменными, значения которых сохраняются даже после того, как сама функция-контейнер отработала.

Подробнее здесь


Автор: Anon (не зарегистрирован), дата: 18 июля, 2015 - 02:18
#permalink

Вместо замыкания вида

(function(){})();

можно использовать типа

!function(){}();

Это позволит сэкономить один символ ценой одной логической операции. В принципе нафиг не стоит ломать над этим голову, просто если встретите - то знайте, это - замыкание, такое же как и первое. Единственная разница - это возвращаемое значение.


Автор: V@dos (не зарегистрирован), дата: 28 октября, 2012 - 10:23
#permalink

люди нужна помощь, плиз, подскажите как сделать функцию чтобы при нажатии на кнопку увеличивалась ширина div, каждый раз


Автор: shkoder, дата: 2 мая, 2013 - 18:15
#permalink
var jsonFromServer = '{"a":{"b":1,"c":[1,2,3,4]},d:true}';

var jsonParse = function(json){
    var result;
    try {
        result = (new Function('result', 'return '+json+';'))(result);
    } catch(e){};
    return result;
};

console.log(jsonParse(jsonFromServer));

Автор: shkoder, дата: 2 мая, 2013 - 18:18
#permalink
var тут = this;
var сообщение = alert;
var функция = Function;
функция.прототип = функция.prototype;
функция.прототип.вызывать = функция.прототип.call;
сообщение.вызывать(тут, '1С-style!!!');

Автор: Slavasil (не зарегистрирован), дата: 2 января, 2017 - 19:01
#permalink


Автор: cementovoz (не зарегистрирован), дата: 7 марта, 2014 - 11:42
#permalink

Забыли про Function.propotype.bind - смена контекста (this) в функции

function a () {
console.log(this.b)
}

a() // undefined

var c = a.bind({b:42})

c() // 42


Автор: Botu (не зарегистрирован), дата: 4 марта, 2015 - 20:05
#permalink

Кто-нибудь знает, что за конструкция
!function - в самом начале jquery используется.


Автор: Анон (не зарегистрирован), дата: 18 июля, 2015 - 02:19
#permalink

Смотри мой коммент выше, про замыкания.


Автор: botu (не зарегистрирован), дата: 5 марта, 2015 - 16:00
#permalink

Опытным путем нашел ....

!function(a,b)
{

}

(arguments);

Это практически тоже самое, что и просто

(
function(a,b)
{

}
)(arguments);

По второму варианту только и очень много вопросов и ответов было в инет...
А вот по варианту с !function(){}(); почему то ничего нету ...

Нашел чисто по наитью, точно что это такое и в чем разница - не знаю ...

Если кто знает - отпишитесь плиз ...


Автор: Анон (не зарегистрирован), дата: 18 июля, 2015 - 02:31
#permalink

Да разницы нет. Если тебе не нужно значение, которое вернёт функция из замыкания, а просто нужно выполнить функцию - то используй конструкцию с !. В принципе - это всего лишь экономия одного символа не более. Всё! Иными словами

var t = 0;
var y = (function(){ return 5; })();
!function(){ window.t = 3; }();
var z = !function(){ return true; }();
// в итоге
// t = 3;
// y = 5
// z = false;

Так то ! - это ни что иное как логическое отрицание. То самое которе true превращает в false и наоборот. Ну например !3 - это false. Здесь это отрицание вынуждает к вычислению подлежащие выражение. Т.е. сама по себе конструкция:

function(){}()

вычислена не будет. А ! заставляет её вычислиться - чтобы знать, что отрицать. Такие дела. С таким же успехом (но с другими побочными эффектами) можно вместо ! использовать например:

var t = function(){}();
1 + function(){}();
"" + function(){}();
// ... etc

Автор: Гость (не зарегистрирован), дата: 24 сентября, 2015 - 17:42
#permalink

Вот здесь все это очень подробно описано https://learn.javascript.ru/closures-module


Автор: Гость (не зарегистрирован), дата: 13 марта, 2018 - 17:29
#permalink

что за долбаеб написал этот сайт еще и смеет писать что это спаравочник удали ево нахуй пидрила, нихуя непонятно где пидор обьяснения


Автор: Гость (не зарегистрирован), дата: 13 марта, 2018 - 17:35
#permalink

люди подскажите нормальный справочник по js чтобы время на этом конченном сайте не тратить


Автор: Гость (не зарегистрирован), дата: 21 марта, 2018 - 00:45
#permalink

нахуй иди отсюда, лохопрогер


Автор: Sssf (не зарегистрирован), дата: 24 марта, 2018 - 14:50
#permalink
var a = prompt("Ты дебил автора называть так???","")
alert (a + "Ты официально дебил!!!")

Автор: Гость (не зарегистрирован), дата: 21 марта, 2018 - 19:31
#permalink
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[js]
[js]
[html]
[html]
[html]
[css]
[css]
[css]
[css]
[html]
[html]
[html]
[html]

[/html][/html][/html][/html][/css][/css][/css][/css][/html][/html][/html][/js][/js]

[/php][/php][/php][/php][/php][/php][/php][/php][/php][/php][/php]


Автор: Гость (не зарегистрирован), дата: 21 марта, 2018 - 19:31
#permalink
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[js]
[js]
[html]
[html]
[html]
[css]
[css]
[css]
[css]
[html]
[html]
[html]
[html]

[/html][/html][/html][/html][/css][/css][/css][/css][/html][/html][/html][/js][/js]

[/php][/php][/php][/php][/php][/php][/php][/php][/php][/php][/php]


Автор: Гость (не зарегистрирован), дата: 21 марта, 2018 - 19:33
#permalink
[js]
[html]
[css]
<code><code><code><code><code><code><code>[css]
<code><code><code><code><code><code><code><code><code><code><code>[css]
[css]
[css]
[css]
[css]
<code><code><code><code><code><code><code><code><code>[css]
[css]
[html]
[html]
[js]
[js]
[js]
[js]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[php]
[js]
[js]
[js]
[html]
[html]
[html]
[html]
[css]
[css]
[css]
<code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code><code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>[/css][/css][/css][/html][/html][/html][/html][/js][/js][/js]

[/php][/php][/php][/php][/php][/php][/php][/js][/js][/js][/js][/html][/html][/css][/css]

[/css][/css][/css][/css][/css][/css][/css][/html][/js][/php]

Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 15:14
#permalink

Автор: candybe (не зарегистрирован), дата: 2 октября, 2022 - 06:09
#permalink

arg1, arg2, ... argN is a hardly code. Tunnel rush is a game that brings new things. It helps you create funny adventure moments. Run in small tunnels and create your own distance records.


Автор: candybe (не зарегистрирован), дата: 2 октября, 2022 - 06:09
#permalink

arg1, arg2, ... argN is a hardly code. Tunnel rush is a game that brings new things. It helps you create funny adventure moments. Run in small tunnels and create your own distance records.


Автор: Máioa (не зарегистрирован), дата: 3 января, 2023 - 11:10
#permalink

I've been following your advice and having a lot of fun with trap the mouse because of it.


Автор: 토토사이트 (не зарегистрирован), дата: 31 июля, 2023 - 08:29
#permalink

Very good article I like to read your post very good to share I want to send it to my fans.Thank you! 토토사이트


Автор: 토토사이트 (не зарегистрирован), дата: 31 июля, 2023 - 08:30
#permalink

Very good article I like to read your post very good to share I want to send it to my fans Thank you! 토토사이트


Автор: 토토사이트 (не зарегистрирован), дата: 31 июля, 2023 - 08:30
#permalink

Very good article I like to read your post very good to share I want to send it to my fans Thank you! 토토사이트


Автор: Suzette Randall (не зарегистрирован), дата: 28 августа, 2023 - 04:19
#permalink

Thanks for sharing interesting data and code for javas system. I searched the documentation and found a lot of really useful information. On the other hand, this issue needs long-term research free games


Автор: 토토사이트추천 (не зарегистрирован), дата: 29 августа, 2023 - 03:30
#permalink

I just want to tell you that I am a novice blogger and I really like this blog website. It is very likely that I will add bookmarks to your blog. You definitely have a wonderful story. Cheers to sharing your blog with us. 토토사이트추천


Автор: 토토사이트추천 (не зарегистрирован), дата: 8 сентября, 2023 - 09:44
#permalink

Due to your meticulous content and feedback, this amazing website may soon become widely known among almost all male and female bloggers. 토토사이트추천


Автор: 메이저사이트 (не зарегистрирован), дата: 12 октября, 2023 - 14:14
#permalink

It is because I have read your article that I am able to improve my skills and ideas in this field. Thank you very much.메이저사이트


Автор: 토토사이트추천 (не зарегистрирован), дата: 24 ноября, 2023 - 03:02
#permalink

I often read your blog and I just want to say keep up the good work! In my opinion, this is one of the most outstanding blogs.토토사이트추천


Автор: ligaciputraalternatiflink (не зарегистрирован), дата: 21 декабря, 2023 - 15:13
#permalink

Ligaciputra menyediakan bermacam slot game dengan hadiah menang besar dengan berbagai topik bervariasi sehingga bisa dipilih secara bebas serta dapat dimainkan kapan dan dimana saja karena disediakan 24 jam nonstop.

Situs slot Ligaciputra juga menyediakan layanan customer service terbaik yang stay 24 jam nonstop serta cepat tanggap sehingga siap melayani kapanpun. Segeralah gabung dengan situs judi slot online Ligaciputra dan mainkan hokimu disini !

Liga ciputra


Автор: ligaciputra slot (не зарегистрирован), дата: 22 декабря, 2023 - 14:49
#permalink

Ligaciputra termasuk platform terpercaya untuk para penggemar judi slot online. Dengan menyuguhkan 12 link situs slot gacor, Liga ciputra mempermudah player meraih kemenangan. Beragam pilihan mesin slot dengan tingkat pembayaran tinggi jadi daya tarik utama.


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

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
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
Антиспам
3 + 13 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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