Что такое код settime


Содержание

Что такое код settime

Язык:
Русский
English

Устанавливает текущее время в операционной системе.

Объявление

Procedure SetTime(Hour, Minute, Second, Sec100 : Word);

Режим

Windows, Real, Protected

Замечания

Допустимые диапазоны параметров:

Hour 0 .. 23, (Часы)
Minute 0 .. 59, (Минуты)
Second 0 .. 59, (Секунды)
Sec100 0 .. 99. (Сотые доли секунды)

Если время не допустимо, запрос игнорируется.

Смотри также

Пример

Язык:
Русский
English

Описание функций языка Си

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

clock_settime – установка показаний часов.

#include
int clock_settime(clockid_t clock_id, struct timespec *t_time);

clock_id – идентификатор часов.
t_time – указатель на структуру, содержащую время для установки часов.

0 — при успешном завершении функции.

-1 — если обнаружена ошибка, при этом переменной errno присваивается код ошибки [EINVAL] — аргумент clock_id не является идентификатором часов, или [EPERM] — функция была вызвана из функции обработки прерываний.

Функция clock_settime() устанавливает часы, на которые указывает идентификатором clock_id, в соответствием со значением, на которое указывает аргумент t_time.

Если значение, на которое ссылается аргумент t_time, не кратно разрешающей способности указанных часов, то оно уменьшается до наибольшего кратного значения. Узнать разрешающую способность часов можно с помощью функции clock_getres.

Система всегда содержит часы с идентификатором CLOCK_REALTIME (системные часы). Значение этих часов содержит время в секундах и наносекундах, истекшее с 0 часов 1 января 1970 года.

При наличии соответствующего оборудования при конфигурации системы могут быть созданы дополнительные часы.

Структура timespec t_time содержит два элемента: time_t tv_sec – секунды, long tv_nsec – наносекунды (время истекшее с последней полной секунды).

Для компиляции программы использующей данную функцию под ОС типа linux, требуется ключ – lrt. Например, для компиляции файла test.c c созданием объектного файла ts.o необходимо в консоле перейти в папку с файлом test.c и набрать команду: gcc test.c -o ts – lrt

Для изменения показания системных часов CLOCK_REALTIME программу необходимо запускать от имени «супер пользователя» для этого используйте команду sudo. Например, для запуска программы скомпиленной, по описанной выше технологии наберите в консоле: sudo ./ts

DateTime::setTime — Установка времени

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTime — date_time_set — Установка времени


Описание

Переустанавливает текущее значение времени объекта DateTime в новое значение.

Список параметров

Только для процедурного стиля: Объект DateTime, возвращаемый date_create() . Функция изменяет этот объект.

Час нового времени.

Минуты нового времени.

Секунды нового времени.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
5.3.0 Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setTime()

= new DateTime ( ‘2001-01-01’ );

$date -> setTime ( 14 , 55 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;

$date -> setTime ( 14 , 55 , 24 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;
?>

date_time_set ( $date , 14 , 55 );
echo date_format ( $date , ‘Y-m-d H:i:s’ ) . «\n» ;

date_time_set ( $date , 14 , 55 , 24 );
echo date_format ( $date , ‘Y-m-d H:i:s’ ) . «\n» ;
?>

Результатом выполнения данных примеров будет что-то подобное:

Пример #2 Значения, превышающие диапазон своего поля, добавляются к старшим полям

= new DateTime ( ‘2001-01-01’ );

$date -> setTime ( 14 , 55 , 24 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;

$date -> setTime ( 14 , 55 , 65 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;

$date -> setTime ( 14 , 65 , 24 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;

$date -> setTime ( 25 , 55 , 24 );
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;
?>

WindowTimers.setTimeout()

На этой странице

Краткое изложение

Вызов функции или выполнение фрагмента кода после указанной задержки.

Синтаксис

  • timeoutID — это числовой ID, который может быть использован позже с window.clearTimeout() .
  • func — это функция, которую требуется вызвать после delay миллисекунд.
  • code — в альтернативном варианте применения это строка, содержащая код, который вы хотите выполнить после delay миллисекунд (использовать этот метод не рекомендуется по тем же причинам, что и eval())
  • delay Необязательный — задержка в миллисекундах (тысячных долях секунды), после которой будет выполнен вызов функции. Реальная задержка может быть больше; см. Notes ниже.


Необходимо принять во внимание, что передача дополнительных параметров функции в первом варианте не работает в Internet Explorer 9 и ниже. Для использования этого функционала в таких браузерах, необходимо использовать код для совместимости (см. раздел Аргументы функции обратного вызова).

Пример

В следующем примере на веб странице создаются две простые кнопки, к которым привязываются действия setTimeout и clearTimeout. Нажатие на первую кнопку установит таймаут, который вызовет диалоговое окно через две секунды. Также будет сохранен id для clearTimeout. Таймаут также может быть отменен по нажатию на вторую кнопку.

HTML Content

JavaScript Content

Аргументы функции обратного вызова

If you need to pass an argument to your callback function, but need it to work in Internet Explorer 9 and below, which doesn’t support sending additional parameters (neither with setTimeout() or setInterval() ) you can include this IE-specific compatibility code which will enable the HTML5 standard parameters passage functionality in that browser for both timers just by inserting it at the beginning of your scripts.

Правка только для IE

If you want a completely unobtrusive hack for every other mobile or desktop browser, including IE 9 and below, you can either use JavaScript conditional comments:

Or go for a very clean approach based on the IE HTML conditional feature:

Another possibility is to use an anonymous function to call your callback, but this solution is a bit more expensive. Example:

Yet another possibility is to use function’s bind. Example:

Проблема с » this «

Когда вы передаете метод в setTimeout() (или в любую другую функцию, если на то пошло), то вызов будет осуществлен с неправильным значением this . Эта проблема разъясняется детально в JavaScript reference.

Explanation

Code executed by setTimeout() is run in a separate execution context to the function from which it was called. As a consequence, the this keyword for the called function will be set to the window (or global ) object; it will not be the same as the this value for the function that called setTimeout . See the following example:

As you can see there are no ways to pass the this object to the callback function.

Возможное решение

A possible way to solve the » this » problem is to replace the two native setTimeout() or setInterval() global functions with two non-native ones which will enable their invocation through the Function.prototype.call method. The following example shows a possible replacement:

New feature test:

There are not native solutions ad hoc to this problem.

Замечания

Отложенное выполнение кода можно отменить, используя window.clearTimeout() . Если функция должна вызываться неоднократно (например, каждые N миллисекунд), необходимо использовать window.setInterval() .

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

Passing string literals

Passing a string instead of a function to setTimeout() suffers from the same hazards as using eval.

String literals are evaluated in the global context, so local symbols in the context where setTimeout() was called will not be available when the string is evaluated as code.

Minimum/ maximum delay and timeout nesting

Historically browsers implement setTimeout() «clamping»: successive setTimeout() calls with delay smaller than the «minimum delay» limit are forced to use at least the minimum delay. The minimum delay, DOM_MIN_TIMEOUT_VALUE , is 4 ms (stored in a preference in Firefox: dom.min_timeout_value ), with a DOM_CLAMP_TIMEOUT_NESTING_LEVEL of 5ms.

In fact, 4ms is specified by the HTML5 spec and is consistent across browsers released in 2010 and onward. Prior to (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), the minimum timeout value for nested timeouts was 10 ms.

In addition to «clamping», the timeout can also fire later when the page (or the OS/browser itself) is busy with other tasks.


To implement a 0 ms timeout in a modern browser, you can use window.postMessage() as described here.

Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed Integer internally. This causes an Integer overflow when using delays larger than 2147483647, resulting in the timeout being executed immediately.

Inactive tabs

In (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2) and Chrome 11, timeouts are clamped to firing no more often than once per second (1000ms) in inactive tabs; see баг 633421 for more information about this in Mozilla or crbug.com/66078 for details about this in Chrome.

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

Update compatibility data on GitHub

Компьютеры Мобильные
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome для Android Firefox для Android Opera для Android Safari on iOS Samsung Internet
setTimeout Chrome Полная поддержка 30 Edge Полная поддержка Да Firefox Полная поддержка 1
Замечания setInterval now defined on WindowOrWorkerGlobalScope mixin.
Opera Android Полная поддержка 10.1 Safari iOS Полная поддержка 1 Samsung Internet Android ?
Supports parameters for callback Chrome Полная поддержка Да Edge Полная поддержка Да Firefox Полная поддержка Да IE Полная поддержка 10 Opera Полная поддержка Да Safari ? WebView Android Полная поддержка Да Chrome Android Полная поддержка Да Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
Throttling of tracking timeout scripts Chrome ? Edge ? Firefox Полная поддержка 55 IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Полная поддержка 55 Opera Android ? Safari iOS ? Samsung Internet Android ?

Легенда

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

Part of DOM level 0, as specified in HTML5.

Также интересно

Metadata

  • Последнее изменение: Mar 20, 2020 , by MDN contributors
  1. WindowTimers

Mozilla

© 2005- 2020 Mozilla and individual contributors.

Content is available under these licenses.

Another possibility is to use an anonymous function to call your callback, but this solution is a bit more expensive. Example:

Yet another possibility is to use function’s bind. Example:

\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u0441 \\\» this \\\»

\u041A\u043E\u0433\u0434\u0430 \u0432\u044B \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u043C\u0435\u0442\u043E\u0434 \u0432 setTimeout() (\u0438\u043B\u0438 \u0432 \u043B\u044E\u0431\u0443\u044E \u0434\u0440\u0443\u0433\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u0435\u0441\u043B\u0438 \u043D\u0430 \u0442\u043E \u043F\u043E\u0448\u043B\u043E), \u0442\u043E \u0432\u044B\u0437\u043E\u0432 \u0431\u0443\u0434\u0435\u0442 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u0435\u043D \u0441 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C this . \u042D\u0442\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u0440\u0430\u0437\u044A\u044F\u0441\u043D\u044F\u0435\u0442\u0441\u044F \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u043E \u0432 JavaScript reference.

Explanation

Code executed by setTimeout() is run in a separate execution context to the function from which it was called. As a consequence, the this keyword for the called function will be set to the window (or global ) object; it will not be the same as the this value for the function that called setTimeout . See the following example:

As you can see there are no ways to pass the this object to the callback function.

\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0435 \u0440\u0435\u0448\u0435\u043D\u0438\u0435

A possible way to solve the \\\» this \\\» problem is to replace the two native setTimeout() or setInterval() global functions with two non-native ones which will enable their invocation through the Function.prototype.call method. The following example shows a possible replacement:

New feature test:

There are not native solutions ad hoc to this problem.


\u0417\u0430\u043C\u0435\u0447\u0430\u043D\u0438\u044F

\u041E\u0442\u043B\u043E\u0436\u0435\u043D\u043D\u043E\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u0434\u0430 \u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F\u00A0 window.clearTimeout() . \u0415\u0441\u043B\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u0430\u00A0\u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0435\u043E\u0434\u043D\u043E\u043A\u0440\u0430\u0442\u043D\u043E\u00A0(\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043A\u0430\u0436\u0434\u044B\u0435 N \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434), \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u00A0 window.setInterval() .

\u0412\u0430\u0436\u043D\u043E \u0437\u0430\u043C\u0435\u0442\u0438\u0442\u044C, \u0447\u0442\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0438\u043B\u0438 \u043A\u043E\u0434 \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u044B, \u043F\u043E\u043A\u0430 \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044F \u043F\u043E\u0442\u043E\u043A,\u00A0\u0432\u044B\u0437\u0432\u0430\u0432\u0448\u0438\u0439\u00A0 setTimeout() .

Passing string literals

Passing a string instead of a function to setTimeout() suffers from the same hazards as using eval.

String literals are evaluated in the global context, so local symbols in the context where setTimeout() was called will not be available when the string is evaluated as code.

Minimum/ maximum delay and timeout nesting

Historically browsers implement setTimeout() \\\»clamping\\\»: successive setTimeout() calls with delay smaller than the \\\»minimum delay\\\» limit are forced to use at least the minimum delay. The minimum delay, DOM_MIN_TIMEOUT_VALUE , is 4 ms (stored in a preference in Firefox: dom.min_timeout_value ), with a DOM_CLAMP_TIMEOUT_NESTING_LEVEL of 5ms.

In fact, 4ms is specified by the HTML5 spec and is consistent across browsers released in 2010 and onward. Prior to (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), the minimum timeout value for nested timeouts was 10 ms.

In addition to \\\»clamping\\\», the timeout can also fire later when the page (or the OS/browser itself) is busy with other tasks.

To implement a 0 ms timeout in a modern browser, you can use window.postMessage() as described here.

Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed Integer internally. This causes an Integer overflow when using delays larger than 2147483647, resulting in the timeout being executed immediately.

Inactive tabs

In (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2) and Chrome 11, timeouts are clamped to firing no more often than once per second (1000ms) in inactive tabs; see \u0431\u0430\u0433\u00A0633421 for more information about this in Mozilla or crbug.com/66078 for details about this in Chrome.

\u0421\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u044C \u0441 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043C\u0438

Update compatibility data on GitHub

\u041A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u044B \u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome \u0434\u043B\u044F Android Firefox \u0434\u043B\u044F Android Opera \u0434\u043B\u044F Android Safari on iOS Samsung Internet
setTimeout Chrome \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 30 Edge \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Firefox \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 1
\u0417\u0430\u043C\u0435\u0447\u0430\u043D\u0438\u044F setInterval now defined on WindowOrWorkerGlobalScope mixin.
Opera Android \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 10.1 Safari iOS \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 1 Samsung Internet Android \\n ?\\n
Supports parameters for callback Chrome \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Edge \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Firefox \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 IE \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 10 Opera \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Safari \\n ?\\n WebView Android \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Chrome Android \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n \u0414\u0430 Firefox Android \\n ?\\n Opera Android \\n ?\\n Safari iOS \\n ?\\n Samsung Internet Android \\n ?\\n
Throttling of tracking timeout scripts Chrome \\n ?\\n Edge \\n ?\\n Firefox \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 55 IE \\n ?\\n Opera \\n ?\\n Safari \\n ?\\n WebView Android \\n ?\\n Chrome Android \\n ?\\n Firefox Android \\n \u041F\u043E\u043B\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \\n \\n 55 Opera Android \\n ?\\n Safari iOS \\n ?\\n Samsung Internet Android \\n ?\\n

\u041B\u0435\u0433\u0435\u043D\u0434\u0430

\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F

Part of DOM level 0, as specified in HTML5.

\u0422\u0430\u043A\u0436\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u043E

\u041A\u0440\u0430\u0442\u043A\u043E\u0435 \u0438\u0437\u043B\u043E\u0436\u0435\u043D\u0438\u0435

\u0412\u044B\u0437\u043E\u0432 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0438\u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u043A\u043E\u0434\u0430 \u043F\u043E\u0441\u043B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0438.

\u0421\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441

\\n\\n

    \\n
  • timeoutID — \u00A0\u044D\u0442\u043E\u00A0\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439\u00A0ID, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u043F\u043E\u0437\u0436\u0435 \u0441 <>. \\n
  • func — \u00A0\u044D\u0442\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F\u00A0\u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435 delay \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434. \\n
  • code \u00A0- \u0432 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u044D\u0442\u043E \u0441\u0442\u0440\u043E\u043A\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044F \u043A\u043E\u0434, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u00A0 delay \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u00A0(\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u044D\u0442\u043E\u0442 \u043C\u0435\u0442\u043E\u0434\u00A0\u043D\u0435 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F\u00A0\u043F\u043E \u0442\u0435\u043C \u0436\u0435 \u043F\u0440\u0438\u0447\u0438\u043D\u0430\u043C, \u0447\u0442\u043E \u0438\u00A0eval()) \\n
  • delay \u00A0\u00A0<> — \u00A0\u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0430 \u0432 \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445\u00A0(\u0442\u044B\u0441\u044F\u0447\u043D\u044B\u0445 \u0434\u043E\u043B\u044F\u0445\u00A0\u0441\u0435\u043A\u0443\u043D\u0434\u044B), \u043F\u043E\u0441\u043B\u0435 \u043A\u043E\u0442\u043E\u0440\u043E\u0439\u00A0\u0431\u0443\u0434\u0435\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D \u0432\u044B\u0437\u043E\u0432 \u0444\u0443\u043D\u043A\u0446\u0438\u0438.\u00A0\u0420\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0430 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435; \u0441\u043C. <> \u043D\u0438\u0436\u0435. \\n

\\n\\n

\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u043F\u0440\u0438\u043D\u044F\u0442\u044C \u0432\u043E \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0432 \u043F\u0435\u0440\u0432\u043E\u043C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0435 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432\u00A0Internet Explorer 9 \u0438 \u043D\u0438\u0436\u0435. \u0414\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u00A0\u044D\u0442\u043E\u0433\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430 \u0432 \u0442\u0430\u043A\u0438\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u0434 \u0434\u043B\u044F \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438\u00A0(\u0441\u043C. \u0440\u0430\u0437\u0434\u0435\u043B\u00A0\u0410\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0433\u043E \u0432\u044B\u0437\u043E\u0432\u0430).

\u041F\u0440\u0438\u043C\u0435\u0440

\u0412 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043F\u0440\u0438\u043C\u0435\u0440\u0435 \u043D\u0430 \u0432\u0435\u0431 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u0441\u043E\u0437\u0434\u0430\u044E\u0442\u0441\u044F \u0434\u0432\u0435 \u043F\u0440\u043E\u0441\u0442\u044B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438, \u043A \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043F\u0440\u0438\u0432\u044F\u0437\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F setTimeout \u0438 clearTimeout. \u041D\u0430\u0436\u0430\u0442\u0438\u0435 \u043D\u0430 \u043F\u0435\u0440\u0432\u0443\u044E \u043A\u043D\u043E\u043F\u043A\u0443 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442 \u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u044B\u0437\u043E\u0432\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\u043E\u0435 \u043E\u043A\u043D\u043E \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0435 \u0441\u0435\u043A\u0443\u043D\u0434\u044B. \u0422\u0430\u043A\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u00A0id \u0434\u043B\u044F clearTimeout. \u0422\u0430\u0439\u043C\u0430\u0443\u0442 \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043E\u0442\u043C\u0435\u043D\u0435\u043D \u043F\u043E \u043D\u0430\u0436\u0430\u0442\u0438\u044E \u043D\u0430 \u0432\u0442\u043E\u0440\u0443\u044E \u043A\u043D\u043E\u043F\u043A\u0443.

HTML Content

JavaScript Content


\u0410\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0433\u043E \u0432\u044B\u0437\u043E\u0432\u0430

If you need to pass an argument to your callback function, but need it to work in Internet Explorer 9 and below, which doesn’t support sending additional parameters (neither with setTimeout() or setInterval() ) you can include this IE-specific compatibility code which will enable the HTML5 standard parameters passage functionality in that browser for both timers just by inserting it at the beginning of your scripts.

\u041F\u0440\u0430\u0432\u043A\u0430 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F IE

If you want a completely unobtrusive hack for every other mobile or desktop browser, including IE 9 and below, you can either use JavaScript conditional comments:

Or go for a very clean approach based on the IE HTML conditional feature:

Another possibility is to use an anonymous function to call your callback, but this solution is a bit more expensive. Example:

Yet another possibility is to use function’s bind. Example:

\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u0441 \\\» this \\\»

\u041A\u043E\u0433\u0434\u0430 \u0432\u044B \u043F\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u043C\u0435\u0442\u043E\u0434 \u0432 setTimeout() (\u0438\u043B\u0438 \u0432 \u043B\u044E\u0431\u0443\u044E \u0434\u0440\u0443\u0433\u0443\u044E \u0444\u0443\u043D\u043A\u0446\u0438\u044E, \u0435\u0441\u043B\u0438 \u043D\u0430 \u0442\u043E \u043F\u043E\u0448\u043B\u043E), \u0442\u043E \u0432\u044B\u0437\u043E\u0432 \u0431\u0443\u0434\u0435\u0442 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u0435\u043D \u0441 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C this . \u042D\u0442\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u0440\u0430\u0437\u044A\u044F\u0441\u043D\u044F\u0435\u0442\u0441\u044F \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u043E \u0432 JavaScript reference.

Explanation

Code executed by setTimeout() is run in a separate execution context to the function from which it was called. As a consequence, the this keyword for the called function will be set to the window (or global ) object; it will not be the same as the this value for the function that called setTimeout . See the following example:

As you can see there are no ways to pass the this object to the callback function.

\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0435 \u0440\u0435\u0448\u0435\u043D\u0438\u0435

A possible way to solve the \\\» this \\\» problem is to replace the two native setTimeout() or setInterval() global functions with two non-native ones which will enable their invocation through the Function.prototype.call method. The following example shows a possible replacement:

New feature test:

There are not native solutions ad hoc to this problem.

\u0417\u0430\u043C\u0435\u0447\u0430\u043D\u0438\u044F

\u041E\u0442\u043B\u043E\u0436\u0435\u043D\u043D\u043E\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u0434\u0430 \u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F\u00A0 window.clearTimeout() . \u0415\u0441\u043B\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u0430\u00A0\u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0435\u043E\u0434\u043D\u043E\u043A\u0440\u0430\u0442\u043D\u043E\u00A0(\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043A\u0430\u0436\u0434\u044B\u0435 N \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434), \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u00A0 window.setInterval() .

\u0412\u0430\u0436\u043D\u043E \u0437\u0430\u043C\u0435\u0442\u0438\u0442\u044C, \u0447\u0442\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0438\u043B\u0438 \u043A\u043E\u0434 \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u044B, \u043F\u043E\u043A\u0430 \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044F \u043F\u043E\u0442\u043E\u043A,\u00A0\u0432\u044B\u0437\u0432\u0430\u0432\u0448\u0438\u0439\u00A0 setTimeout() .

Passing string literals

Passing a string instead of a function to setTimeout() suffers from the same hazards as using eval.

String literals are evaluated in the global context, so local symbols in the context where setTimeout() was called will not be available when the string is evaluated as code.

Minimum/ maximum delay and timeout nesting

Historically browsers implement setTimeout() \\\»clamping\\\»: successive setTimeout() calls with delay smaller than the \\\»minimum delay\\\» limit are forced to use at least the minimum delay. The minimum delay, DOM_MIN_TIMEOUT_VALUE , is 4 ms (stored in a preference in Firefox: dom.min_timeout_value ), with a DOM_CLAMP_TIMEOUT_NESTING_LEVEL of 5ms.

In fact, 4ms is specified by the HTML5 spec and is consistent across browsers released in 2010 and onward. Prior to << geckoRelease(\\\"5.0\\\") >>, the minimum timeout value for nested timeouts was 10 ms.

In addition to \\\»clamping\\\», the timeout can also fire later when the page (or the OS/browser itself) is busy with other tasks.

To implement a 0 ms timeout in a modern browser, you can use << domxref(\\\"window.postMessage()\\\") >> as described here.

Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed Integer internally. This causes an Integer overflow when using delays larger than 2147483647, resulting in the timeout being executed immediately.

Inactive tabs

In << geckoRelease(\\\"5.0\\\") >> and Chrome 11, timeouts are clamped to firing no more often than once per second (1000ms) in inactive tabs; see << bug(633421) >> for more information about this in Mozilla or crbug.com/66078 for details about this in Chrome.

\u0421\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u044C \u0441 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043C\u0438

\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F


Part of DOM level 0, as specified in HTML5.

Хитрый вопрос по JavaScript, который задают на собеседованиях в Google и Amazon

Привет Хабр! Есть один вопрос, с виду — не такой уж и сложный, который нередко задают разработчикам на собеседованиях.

Сегодня мы его разберём и поговорим о подходах к поиску ответа. Задавая вопрос, о котором идёт речь, интервьюер предлагает рассказать о том, что выведет примерно такой код:

А вы знаете, что появится в консоли?

Сразу хочется сказать, что этот вопрос направлен на понимание таких механизмов JS, как замыкания, области видимости и функция setTimeout. Правильный ответ выглядит так:

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

Почему этот вопрос так популярен?

Один пользователь Reddit рассказал о том, что ему задавали такой вопрос на собеседовании в Amazon. Я и сам сталкивался с подобными вопросами, направленными на понимание циклов и замыканий в JS, даже на собеседовании в Google.

Этот вопрос позволяет проверить владение некоторыми важными концепциями JavaScript. Учитывая особенности работы JS, ситуация, которая смоделирована в представленном фрагменте кода, нередко может возникать и в ходе реальной работы. В частности, это касается использования setTimeout или какой-нибудь другой асинхронной функции в цикле.

Хорошее понимание функциональных и блочных областей видимости в JavaScript, особенностей устройства анонимных функций, замыканий и IIFE, поможет вашему профессиональному росту и позволит показать себя с хорошей стороны на собеседованиях.

Подходы к ответу на вопрос и к избавлению от undefined

На самом деле, я уже писал о возможных подходах к ответу на этот вопрос в некоторых моих предыдущих материалах. В частности, в этом и этом. Позволю себе процитировать кое-что из этих публикаций:
Причина подобного заключается в том, что функция setTimeout создаёт функцию (замыкание), у которой есть доступ к внешней по отношению к ней области видимости, представленной в данном случае циклом, в котором объявляется и используется переменная i . После того, как пройдут 3 секунды, функция выполняется и выводит значение i , которое, после окончания работы цикла, остаётся доступным и равняется 4-м. Переменная, в ходе работы цикла, последовательно принимает значения 0, 1, 2, 3, 4, причём, последнее значение оказывается сохранённым в ней и после выхода из цикла. В массиве имеется четыре элемента, с индексами от 0 до 3, поэтому, попытавшись обратиться к arr[4] , мы и получаем undefined . Как избавиться от undefined и сделать так, чтобы код выводил то, чего от него и ждут, то есть — значения элементов массива?

Вот пара распространённых подходов к решению подобной задачи, а конкретно — к тому, чтобы организовать доступ к нужному значению переменной цикла внутри функции, вызываемой setTimeout .

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

Итак, вот первый вариант:

Вот второй вариант:

На Reddit мне удалось найти похожий ответ на этот вопрос. Вот — хорошее разъяснение особенностей замыканий на StackOverflow.

Итоги

Можно отметить, что вопрос, с которого мы начали этот материал, часто сбивает с толку людей, обладающих небольшим опытом в области JavaScript или в функциональном программировании. Причина заключается в непонимании сущности замыканий. При формировании замыкания не выполняет передача значения переменной или ссылки на неё. Замыкание захватывает саму переменную.

Уважаемые читатели! Знаете ли вы интересные вопросы, которые задают на собеседованиях по JavaScript? Если да — просим поделиться.

Что такое код settime

Устанавливает текущее время системы

#include
_SetTime ( $iHour , $iMinute [, $iSecond = 0 ])

$iHour час. Значения: 0-23
$iMinute минута. Значения: 0-59
$iSecond [необязательный] Секунда. Значения: 0-59
Успех: Возвращает 1
Ошибка: Возвращает 0 и устанавливает @error
@error : 0 — нет ошибок
1 — Невозможно
@extended : GetLastError ()
Коды ошибок: http://msdn.microsoft.com/en-us/library/ms681381.aspx

Если опциональный параметр (iSecond) не указан, то функция не изменяет это значение!

_SetTime ( 20 , 15 ) ; Устанавливает время на 20:15
_SetTime ( 20 , 15 , 30 ) ; Устанавливает время на 20:15:30

set time

Универсальный англо-русский словарь . Академик.ру . 2011 .

Смотреть что такое «set time» в других словарях:

set time — the period over which net is allowed to fish before being pulled form the water or the fish removed … Dictionary of ichthyology


at a set timeAt a particular, pre specified time. * /Do we have to eat in this hotel at a set time, or may we come down whenever we want?/ … Dictionary of American idioms

at a set timeAt a particular, pre specified time. * /Do we have to eat in this hotel at a set time, or may we come down whenever we want?/ … Dictionary of American idioms

at\ a\ set\ time — prep. phr. At a particular, pre specified time. Do we have to eat in this hotel at a set time, or may we come down whenever we want? … Словарь американских идиом

initial set time — rišimosi pradžia statusas T sritis chemija apibrėžtis Trukmė nuo vandens supylimo pradžios iki akimirkos, kai rišamosios medžiagos tešla pradeda prarasti plastiškumą. atitikmenys: angl. initial set time; initial setting time rus. начало… … Chemijos terminų aiškinamasis žodynas

set — /set/, v., set, setting, n., adj., interj. v.t. 1. to put (something or someone) in a particular place: to set a vase on a table. 2. to place in a particular position or posture: Set the baby on his feet. 3. to place in some relation to something … Universalium

set — [set] vt. set, setting [ME setten < OE settan (akin to Ger setzen & Goth satjan < Gmc * satjan), caus. formation “to cause to sit” < base of SIT] 1. to place in a sitting position; cause to sit; seat 2. a) to cause (a fowl) to sit on… … English World dictionary

set*/*/*/ — [set] (past tense and past participle set) verb I 1) [T] to put someone or something in a position, or to be in a particular place or position Tea s ready, he told them and set down the tray.[/ex] She set the baby on the floor to play.[/ex] 2)… … Dictionary for writing and speaking English

time lock — ☆ time lock n. a lock with a mechanism that prevents opening before the set time … English World dictionary

Time Spiral — Infobox mtgset Expansion Name = Time Spiral Expansion Symbol = Symbol Description = An hourglass Release Date = October 6 2006 Size = 301 cards + 121 timeshifted Keywords = Buyback, Echo, Flanking, Flash, Flashback, Kicker, Madness, Morph, Shadow … Wikipedia

set — set1 W1S1 [set] v past tense and past participle set present participle setting ▬▬▬▬▬▬▬ 1¦(put)¦ 2¦(put into surface)¦ 3¦(story)¦ 4¦(cons >Dictionary of contemporary English

setTimeout()

Поддержка браузерами

4.0+ 4.0+ 1.0+ 1.0+ 4.0+ 1.0+

Описание

Функция setTimeout() вызывает функцию или выполняет переданный код после указанной задержки.

Примечание: данная функция вызывается на исполнение только один раз, если необходимо повторение выполнения действий через определённый промежуток времени воспользуйтесь функцией setInterval().

setTimeout() в циклах

Некоторые новички в JavaScript пытаются использовать метод setTimeout() в циклах для анимации. Однако никакой анимации в итоге не получают и вот почему. Метод setTimeout() вызывает указанную функцию только один раз: он регистрирует функцию, которая должна быть вызвана через указанное количество миллисекунд, когда указанная задержка истечёт, функция будет вызвана. Поместив метод setTimeout() в тело цикла, при каждой итерации будет зарегистрирован вызов функции через указанный промежуток времени, но так как цикл отрабатывает итерации слишком быстро, то все вызовы регистрируются практически в одно время и создаётся ощущение, что метод setTimeout() отработал всего один раз, а не указанное количество.

Если хочется создать анимацию, то для этой цели необходимо использовать метод setInterval() .

Синтаксис

Аргументы

  • func: Имя функции, которая будет вызвана после указанной задержки.
  • code: Строка, содержащая JavaScript-код, который будет выполнен после указанной задержки.
  • delay: Задержка, указываемая в миллисекундах, по истечении которой будет выполнен вызов функции или переданный в виде строки код. Если аргумент, определяющий задержку, отсутствует, то используется значение задержки, установленное по умолчанию – 0.

Примечание: 1 секунда = 1000 миллисекунд

  • param1, param2, . : Параметры, которые будут переданы в качестве аргументов указанной функции.
  • Методы setTimeout и setInterval в Javascript


    Автор: Сергей Никонов

    Очень частый вопрос на собеседовании кандидата на должность веб-разработчик — Чем отличается setTimeout от setInterval. Важно не только знать чем отличается setTimeout от setInterval, но и понимать как можно использовать оба метода Javascript в задачах веб-программиста. В этой статье на примерах мы разберем что это за методы и чем они отличаются друг от друга

    Видеоурок к статье

    Введение

    Для того, чтобы понять чем отличается метод setTimeout от setInterval давайте на примерах разберем, как работают эти методы.

    Метод setTimeout

    Метод setTimeout служит для того, чтобы вы смогли выполнить какой-нибудь Javascript сценарий с определенным интервалом.

    Пример setTimeout:

    Предположим, что вам нужно вывести модальное окно или какой-нибудь текст не сразу после загрузки страницы, а после того, как пользователь провел на вашей странице 10 секунд.

    Создайте html файл с содержимым:

    В данном примере, мы создали структуру документа html, создали div с id settimeout и подключили библиотеку JQuery.

    Затем мы создали анонимный метод setTimeout и задали время выполнения через 10 секунд. Обратите внимание, что интервал задается в миллисекундах.

    Внутри метода мы говорим, что хотим в div с id settimeout вставить html с текстом «Я появился через 10 секунд после загрузки страницы».

    Стоит заметить, что setTimeout выполняется только один раз.

    Метод setInterval

    В отличии от setTimeout, метод setInterval выполняется до тех пор, пока не будет вызван метод clearInterval.

    Для демонстрации метода setInterval, усложним немного пример.

    Наш пример будет состоять из двух файлом ajax.php в котором мы будем хранить массив и возвращать его в формате json.

    В файле index.html мы будем ajax’сом выводить новости из файла ajax.php с интервалом две секунды.

    В этом файле для примера мы будем хранить данные новостей. Первой строкой мы указываем кодировку utf-8 чтобы можно было корректно отображать русский язык. Далее мы создаем многомерный массив. И строкой json_encode мы преобразуем массив php в формат json для работы с этими данными в javascript.

    Теперь дополните созданный файл из прошлого примера index.html следующим кодом:

    Методом библиотеки Jquery $.ajax мы делаем фоновую загрузку данных из файла ajax.php. Далее мы создаем функцию setInterval где итеративно добавляем к переменной count единицу. Методом setInterval мы заменили цикл each, чтобы продемонстрировать setInterval.

    Методом Jquery append добавляем к div c id setinterval данные. Когда новости заканчиваются, мы очищаем метод setInterval clearInterval, для того, чтобы он больше не выполнялся.

    В результате вы увидите, что новости выводятся не все сразу, а с интервалом две секунды.

    Выводы

    Методы setInterval и setTimeout используются очень часто в работе веб-программиста.

    Если у вас остались вопросы и непонятен принцип работы этих двух полезных методов javascript, посмотрите видеоурок статье.

    Скачать примеры вы можете по этой ссылке.

    Подписывайтесь на наш канал Youtube, вступайте в группу VK. Также вы можете подписаться на нашу почтовую рассылку, чтобы быть в курсе о новых и полезных материалах для веб-разработчика.

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

    setTimeout. передача параметра функции в функцию

    Доброго времени суток. К делу. При запуске функции setTime,в нее передаем input, куда выводиться время. вопрос. при повторном вызове через таймер, obj не определяется. и даже если inputs через var определить не работает. только таким образом. вот. код

    Если писать вместо

    то всё работает.

    1 ответ 1

    Когда вы пишите setTimeout(‘setTime(obj)’, 1000); — ваша setTime(obj) исполняется в глобальной области видимости, где нет никакого obj .

    Когда вы пишите inputs = obj — вы создаете глобальную переменную, потому и setTimeout(‘setTime(inputs)’, 1000); работает. Но в случае нескольких таймеров все поломается — потому что глобальная переменная только одна.

    Правильно же передавать в setTimeout не строку — а функцию:

    Или более коротко если интересуют только свежие браузеры:

    Также можно воспользоваться формой setTimeout с передачей дополнительных аргументов:

    Илон Маск рекомендует:  Что такое код posix_getpwuid
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL