diff options
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/error/stack')
| -rw-r--r-- | files/ru/web/javascript/reference/global_objects/error/stack/index.html | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/error/stack/index.html b/files/ru/web/javascript/reference/global_objects/error/stack/index.html index d28040716c..a3cedd7c38 100644 --- a/files/ru/web/javascript/reference/global_objects/error/stack/index.html +++ b/files/ru/web/javascript/reference/global_objects/error/stack/index.html @@ -12,15 +12,15 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack --- <div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}</div> -<h2 id="Summary" name="Summary">Сводка</h2> +<h2 id="Summary">Сводка</h2> <p>Нестандартное свойство <strong><code>stack</code></strong> объекта {{jsxref("Error")}} возвращает трассировку стека вызываемых функций в порядке их выполнения, вместе с номерами строк, именами файлов и аргументами. Строка со стеком заполняется от самых недавних вызовов до вызова из глобальной области видимости.</p> -<h2 id="Description" name="Description">Описание</h2> +<h2 id="Description">Описание</h2> <p>Каждый шаг находится на отдельной строке; первая часть строки содержит имя функции (если это не вызов из глобальной области видимости), затем знак собаки (<code>@</code>), местоположение файла (кроме случая, когда функция является конструктором ошибки, которую она выбрасывает), двоеточие и, если есть местоположение файла, номер строки. Обратите внимание, что объект {{jsxref("Error")}} также обладает свойствами <code>fileName</code>, <code>lineNumber</code> и <code>columnNumber</code>, позволяющими извлечь имя файла, номер строки и столбца из выброшенной ошибки (но только самой ошибки, а не всего стека вызовов).</p> <p>Обратите внимание, что такой формат используется в Firefox. Нет никакого «стандартного формата». Однако, Safari 6+ и Opera 12- используют очень похожий формат. С другой стороны, браузеры, использующие движок JavaScript V8 (например, Chrome, Opera 15+, Браузер Android) и IE10+, используют другой формат (смотрите эту статью по <a class="external" href="http://msdn.microsoft.com/ru-ru/library/windows/apps/hh699850.aspx"><code>error.stack</code></a> в MSDN).</p> <p><strong>Значения аргументов в стеке</strong>: до Firefox 14 ({{bug("744842")}}) за именем функции и прямо перед знаком собаки (<code>@</code>) в круглых скобках следовали значения аргументов, преобразованные в строки. Хотя объекты (или массивы и прочее) преобразовывались в форму <code>"[object Object]"</code>, и, таким образом, невозможно было узнать их содержимое, скалярные значения могли быть извлечены (это всё ещё можно использовать в Firefox 14 — однако проще для получения аргументов использовать <code>arguments.callee.caller.arguments</code>, а для получения имени функции — <code>arguments.callee.caller.name</code>). Значение <code>"undefined"</code> показывалось как <code>"(void 0)"</code>. Обратите внимание, что если строковые аргументы содержали значения, включающие символы <code>"@"</code>, <code>"("</code>, <code>")"</code> (или если они включали имена файлов), вам не так то просто было разбить строку на составные части. Таким образом, в Firefox 14 и более поздних версиях это перестало быть проблемой.</p> -<h2 id="Examples" name="Examples">Примеры</h2> +<h2 id="Examples">Примеры</h2> <p>Следующая разметка HTML демонстрирует использование свойства <code>stack</code>.</p> <pre class="brush: html"><!DOCTYPE HTML> <meta charset="UTF-8"> @@ -62,7 +62,7 @@ b(3,4,"\n\n",(void 0),[object Object])@file:///C:/example.html:16 a("первый вызов, первый аргумент")@file:///C:/example.html:19 @file:///C:/example.html:21</samp></pre> -<h3 id="Stack_of_eval'ed_code" name="Stack_of_eval'ed_code">Стек кода в функции <code>eval()</code></h3> +<h3 id="Stack_of_eval'ed_code">Стек кода в функции <code>eval()</code></h3> <p>Начиная с Firefox 30 {{geckoRelease("30")}}, стек вызовов кода в вызовах <code>Function()</code> и <code>eval()</code> даёт более подробную информацию о номере строки и колонки внутри этих вызовов. Вызовы <code>Function</code> обозначаются <code>"> Function"</code>, а вызовы <code>eval()</code> обозначаются <code>"> eval"</code>. Смотрите {{bug("332176")}}.</p> <pre class="brush: js">try { new Function('throw new Error()')(); @@ -86,13 +86,13 @@ try { </pre> <p>Также для именования исходного кода в функции <code>eval()</code> вы можете использовать директиву <code>//# sourceURL</code>. Смотрите раздел <a href="/ru/docs/Tools/Debugger/How_to/Debug_eval_sources">Отладка исходных кодов в функции <code>eval()</code></a> в документации по <a href="/ru/docs/Tools/Debugger">отладчику</a>, а также эту <a href="http://fitzgeraldnick.com/weblog/59/">запись в блоге</a> (на английском).</p> -<h2 id="Specifications" name="Specifications">Спецификации</h2> +<h2 id="Specifications">Спецификации</h2> <p>Не является частью какой-либо спецификации. Не стандартно.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> +<h2 id="Browser_compatibility">Совместимость с браузерами</h2> <p>{{Compat}}</p> -<h2 id="See_also" name="See_also">Смотрите также</h2> +<h2 id="See_also">Смотрите также</h2> <ul> <li><a href="/ru/docs/Components.stack">Components.stack</a></li> <li>Внешние проекты: <a class="link-https" href="https://github.com/csnover/TraceKit/">TraceKit</a> и <a class="link-https" href="https://github.com/eriwen/javascript-stacktrace">javascript-stacktrace</a></li> |
