From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- .../reference/global_objects/function/index.html | 155 --------------------- 1 file changed, 155 deletions(-) delete mode 100644 files/uk/web/javascript/reference/global_objects/function/index.html (limited to 'files/uk/web/javascript/reference/global_objects/function/index.html') diff --git a/files/uk/web/javascript/reference/global_objects/function/index.html b/files/uk/web/javascript/reference/global_objects/function/index.html deleted file mode 100644 index f2672fe180..0000000000 --- a/files/uk/web/javascript/reference/global_objects/function/index.html +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Function -slug: Web/JavaScript/Reference/Global_Objects/Function -tags: - - Constructor - - Function - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Function ---- -
{{JSRef}}
- -

Конструктор Function створює новий об'єкт Function. Прямий виклик конструктора може створювати функції динамічно, але має проблеми з безпекою та схожі з {{jsxref("eval")}} (але менш значні) проблеми з продуктивністю. Однак, на відміну від eval, конструктор Function створює функції, які виконуються тільки у глобальній області видимості.

- -

{{EmbedInteractiveExample("pages/js/function-constructor.html")}}

- - - -

У JavaScript кожна функція є об'єктом Function. Це можна побачити за допомогою коду (function(){}).constructor === Function, який повертає true.

- -

Синтаксис

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

Параметри

- -
-
arg1, arg2, ... argN
-
Імена, які будуть використані функцією в якості імен формальних аргументів. Кожне ім'я має бути рядком, який представляє ідентифікатор JavaScript, або списком таких рядків, розділених комою; наприклад, "x", "theValue" або "a,b".
-
functionBody
-
Рядок, що містить інструкції JavaScript, які складають визначення функції.
-
- -

Опис

- -

Об'єкти Function, створені конструктором Function, аналізуються, коли створюється функція. Це менш ефективно, ніж оголошувати функцію функціональним виразом або оголошенням функції та викликати її, бо такі функції аналізуються разом з рештою коду.

- -

Усі аргументи, передані у функцію, сприймаються як імена ідентифікаторів параметрів функції, що має бути створена, в тому порядку, в якому вони передані.

- -

Виклик конструктора Function у вигляді функції (без оператора new) має той самий ефект, що й виклик конструктора.

- -

Властивості та методи об'єкта Function

- -

Глобальний об'єкт Function не має власних методів та властивостей, однак, він успадковує деякі методи та властивості через ланцюжок прототипів від {{jsxref("Function.prototype")}}.

- -

Об'єкт прототипу Function

- -

Властивості

- -
{{page('/uk/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype', 'Властивості')}}
- -

Методи

- -
{{page('/uk/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype', 'Методи')}}
- -

Екземпляри Function

- -

Екземпляри Function успадковують методи та властивості від {{jsxref("Function.prototype")}}. Як і в усіх конструкторах, ви можете змінити об'єкт прототипу конструктора, щоб внести зміни до усіх екземплярів Function.

- -

Приклади

- -

Визначення аргументів у конструкторі Function

- -

Наступний код створює об'єкт Function, що приймає два аргументи.

- -
// Цей приклад можна запустити прямо у консолі JavaScript
-
-// Створити функцію, що приймає два аргументи та повертає суму цих аргументів
-var adder = new Function('a', 'b', 'return a + b');
-
-// Виклик функції
-adder(2, 6);
-// > 8
-
- -

Аргументи "a" та "b" є іменами формальних аргументів, які використовуються у тілі функції, "return a + b".

- -

Різниця між конструктором Function та оголошенням функції

- -

Функції, створені конструктором Function, не утворюють замикань з контекстом свого cтворення; вони завжди cтворюються у глобальній області видимості. Під час виконання вони матимуть доступ лише до власних локальних змінних та глобальних змінних, а не до змінних з області видимості, де був створений конструктор Function. Це відрізняється від {{jsxref("eval")}} з кодом функціонального виразу.

- -
var x = 10;
-
-function createFunction1() {
-    var x = 20;
-    return new Function('return x;'); // цей |x| звертається до глобального |x|
-}
-
-function createFunction2() {
-    var x = 20;
-    function f() {
-        return x; // цей |x| звертається до локального |x|, записаного вище
-    }
-    return f;
-}
-
-var f1 = createFunction1();
-console.log(f1());          // 10
-var f2 = createFunction2();
-console.log(f2());          // 20
- -

В той час, як цей код працює у веб-переглядачах, f1() спричинить ReferenceError у Node.js, через те, що x не буде знайдено. Це відбувається тому, що область видимості верхнього рівня у Node не є глобальною областю видимості, і x буде локальною змінною модуля.

- -

Специфікації

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
СпецифікаціяСтатусКоментар
{{SpecName('ES1')}}{{Spec2('ES1')}}Початкове визначення. Реалізоване у JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.3', 'Function')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-function-objects', 'Function')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-function-objects', 'Function')}}{{Spec2('ESDraft')}}
- -

Сумісність з веб-переглядачами

- - - -

{{Compat("javascript.builtins.Function")}}

- -

Див. також

- - -- cgit v1.2.3-54-g00ecf