From 1386fed7d38652d5848d315927e7e23a66cffd13 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 20 Oct 2021 13:28:52 +0300 Subject: [RU] Remove `name` attribute from headings (#2788) --- .../global_objects/function/bind/index.html | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'files/ru/web/javascript/reference/global_objects/function/bind') diff --git a/files/ru/web/javascript/reference/global_objects/function/bind/index.html b/files/ru/web/javascript/reference/global_objects/function/bind/index.html index eba2ec1626..4dccce8791 100644 --- a/files/ru/web/javascript/reference/global_objects/function/bind/index.html +++ b/files/ru/web/javascript/reference/global_objects/function/bind/index.html @@ -13,15 +13,15 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind ---
{{JSRef("Global_Objects", "Function")}}
-

Сводка

+

Сводка

Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.

-

Синтаксис

+

Синтаксис

fun.bind(thisArg[, arg1[, arg2[, ...]]])
-

Параметры

+

Параметры

thisArg
@@ -30,7 +30,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind
Аргументы целевой функции, передаваемые перед аргументами привязанной функции при вызове целевой функции.
-

Описание

+

Описание

Метод bind() создаёт новую "привязанную функцию" (ПФ).  ПФ - это "необычный функциональный объект" ( термин из ECMAScript 6 ), который является обёрткой над исходным функциональным объектом. Вызов ПФ   приводит к исполнению кода обёрнутой функции.

@@ -53,9 +53,9 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind

Привязанная функция также может быть сконструирована с помощью оператора {{jsxref("Operators/new", "new")}}: это работает так, как если бы вместо неё конструировалась целевая функция. Предоставляемое значение this в этом случае игнорируется, хотя ведущие аргументы всё ещё передаются в эмулируемую функцию.

-

Примеры

+

Примеры

-

Пример: создание привязанной функции

+

Пример: создание привязанной функции

Простейшим способом использования bind() является создание функции, которая, вне зависимости от способа её вызова, вызывается с определённым значением this. Обычным заблуждением для новичков в JavaScript является извлечение метода из объекта с целью его дальнейшего вызова в качестве функции и ожидание того, что он будет использовать оригинальный объект в качестве своего значения this (например, такое может случиться при использовании метода как колбэк-функции). Однако, без специальной обработки, оригинальный объект зачастую теряется. Создание привязанной функции из функции, использующей оригинальный объект, изящно решает эту проблему:

@@ -75,7 +75,7 @@ var boundGetX = getX.bind(module); boundGetX(); // 81 -

Пример: частичные функции

+

Пример: частичные функции

Следующим простейшим способом использования bind() является создание функции с предопределёнными аргументами. Эти аргументы (если они есть) передаются после значения this и вставляются перед аргументами, передаваемыми в целевую функцию при вызове привязанной функции.

@@ -92,7 +92,7 @@ var list2 = leadingThirtysevenList(); // [37] var list3 = leadingThirtysevenList(1, 2, 3); // [37, 1, 2, 3] -

Пример: с setTimeout

+

Пример: с setTimeout

По умолчанию, внутри {{domxref("window.setTimeout()")}} контекст this устанавливается в объект {{domxref("window")}} (или global). При работе с методами класса, требующими this для ссылки на экземпляры класса, вы можете явно привязать this к колбэк-функции для сохранения экземпляра.

@@ -111,7 +111,7 @@ LateBloomer.prototype.declare = function() { }; -

Пример: привязывание функций, используемых в качестве конструкторов

+

Пример: привязывание функций, используемых в качестве конструкторов

Предупреждение: этот раздел демонстрирует возможности JavaScript и документирует некоторые граничные случаи использования метода bind(). Показанные ниже методы не являются лучшей практикой и, вероятно, их не следует использовать в рабочем окружении.

@@ -161,7 +161,7 @@ emptyObj.x + ',' + emptyObj.y;

Если вы хотите поддерживать использование привязанной функции только с помощью оператора {{jsxref("Operators/new", "new")}}, либо только с помощью прямого вызова, целевая функция должна предусматривать такие ограничения.

-

Пример: создание сокращений

+

Пример: создание сокращений

Метод bind() также полезен в случаях, если вы хотите создать сокращение для функции, требующей определённое значение this.

@@ -185,7 +185,7 @@ var slice = Function.prototype.call.bind(unboundSlice); slice(arguments); -

Полифил

+

Полифил

Функция bind является дополнением к стандарту ECMA-262 5-го издания; поэтому она может присутствовать не во всех браузерах. Вы можете частично обойти это ограничение, вставив следующий код в начало ваших скриптов, он позволяет использовать большую часть возможностей bind() в реализациях, не имеющих его родной поддержки.

@@ -226,7 +226,7 @@ slice(arguments);

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

-

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

+

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

@@ -248,11 +248,11 @@ slice(arguments);
-

Совместимость с браузерами

+

Совместимость с браузерами

{{Compat}}

-

Смотрите также

+

Смотрите также