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) --- .../global_objects/function/caller/index.html | 82 ---------------------- 1 file changed, 82 deletions(-) delete mode 100644 files/uk/web/javascript/reference/global_objects/function/caller/index.html (limited to 'files/uk/web/javascript/reference/global_objects/function/caller') diff --git a/files/uk/web/javascript/reference/global_objects/function/caller/index.html b/files/uk/web/javascript/reference/global_objects/function/caller/index.html deleted file mode 100644 index ab2fe55383..0000000000 --- a/files/uk/web/javascript/reference/global_objects/function/caller/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Function.caller -slug: Web/JavaScript/Reference/Global_Objects/Function/caller -tags: - - Function - - JavaScript - - Властивість -translation_of: Web/JavaScript/Reference/Global_Objects/Function/caller ---- -
{{JSRef}} {{non-standard_header}}
- -

Властивість function.caller повертає функцію, яка викликала вказану функцію. Ця властивість заборонена у строгому режимі.

- -

Опис

- -

Якщо функція f викликана кодом верхнього рівня, значенням f.caller буде {{jsxref("null")}}, інакше це буде функція, яка викликала f.

- -

Ця властивість замінює застарілу властивість {{jsxref("Functions/arguments/caller", "arguments.caller")}} об'єкта {{jsxref("Functions/arguments", "arguments")}}.

- -

Спеціальна властивість __caller__, яка повертала об'єкт активації функції, що викликала задану функцію, дозволяючи відбудовувати стек викликів, була прибрана з міркувань безпеки.

- -

Примітки

- -

Зауважте, що у випадку рекурсії ви не зможете відбудувати стек викликів за допомогою цієї властивості. Розглянемо:

- -
function f(n) { g(n - 1); }
-function g(n) { if (n > 0) { f(n); } else { stop(); } }
-f(2);
-
- -

У момент, коли викликається stop(), стек викликів буде таким:

- -
f(2) -> g(1) -> f(1) -> g(0) -> stop()
-
- -

Наступне дорівнює true:

- -
stop.caller === g && f.caller === g && g.caller === f
-
- -

Отже, якщо ви спробуєте отримати стек викликів у функції stop() ось так:

- -
var f = stop;
-var stack = 'Стек викликів:';
-while (f) {
-  stack += '\n' + f.name;
-  f = f.caller;
-}
-
- -

цикл ніколи не зупиниться.

- -

Приклади

- -

Перевірка значення властивості функції caller

- -

Наступний код перевіряє значення властивості функції caller.

- -
function myFunc() {
-  if (myFunc.caller == null) {
-    return 'Ця функція викликана з верхнього рівня!';
-  } else {
-    return 'Ця функція викликана ' + myFunc.caller;
-  }
-}
-
- -

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

- -

Не є частиною жодних специфікацій. Реалізовано у JavaScript 1.5.

- -

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

- - - -

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

- -

Див. також

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