English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Анализ использования arguments.callee в функции Javascript

Этот пример рассказывает о применении arguments.callee в функции JavaScript. Поделюсь с вами, вот как это можно сделать:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <script type="text/javascript">
    //Метод 1, этот метод не позволяет реализовать рекурсивное вычисление факториала, когда имя функции fac указывает на новый функцию
//    function fac(num) {
//      if (num <= 1) {
//        return 1;
//      }
//      else {
//        return num * fac(num - 1);
//      }
    //метод 2
    function fac(num) {
      if (num <= 1) {
        return 1;
      }
      else {
        return num * arguments.callee(num - 1);  //arguments.callee указывает на текущий метод
      }
    }
    window.onload = function () {
      var func = fac;
      fac = function () {  //указывает на новую функцию
        return 1;
      }
      alert(func(5));  //метод 1 выводит 5, метод 2 выводит факториал 5
      alert(fac(5));   //вывод 1
    }
  </script>
</head>
<body>
</body>
</html>

Для тех, кто интересуется дополнительной информацией о JavaScript, можно посмотреть темы на этом сайте: «Суммарные советы по операциям с массивами JavaScript», «Суммарные советы по использованию математических операций JavaScript», «Суммарные советы по структурам данных и алгоритмам JavaScript», «Суммарные советы по эффектам и техникам JavaScript», «Суммарные советы по алгоритмам поиска JavaScript», «Суммарные советы по эффектам анимации и техникам JavaScript», «Суммарные советы по ошибкам и техникам отладки JavaScript» и «Суммарные советы по алгоритмам и техникам遍ения JavaScript»

Надеюсь, что это руководство поможет вам в разработке программ на JavaScript.

Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему владельцу. Контент предоставлен пользователями Интернета, загружен самостоятельно, сайт не имеет права собственности, не underwent редактирование вручную и не несет ответственности за связанные с этим юридические обязательства. Если вы обнаружите спорное содержимое о нарушении авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для отчета и предоставьте соответствующие доказательства. Если будет установлено, что содержимое нарушает авторские права, сайт немедленно удалил спорное содержимое.

Рекомендуем также