★ wanayoo — archive 1999 https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/function*Nouvelle recherche | Portail wanayoo

Check out Firefox Developer Edition, the first browser built for developers like you. http://mzl.la/112VrtT

mozilla
Your Search Results

    function*

    This article is in need of a technical review.

    This article is in need of an editorial review.

    Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
    Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

    Сводка

    function* (ключевое слово function со звёздочкой) определяет функцию-генератор.

    Синтаксис

    function* gen(i){
      while(true){
        yield i++;
        yield* anotherGenerator(i);
      }
    }
    

    Описание

    Генераторы являются функциями с возможность повторного входа после выхода. Их контекст исполнения (значения переменных) сохраняется при последующих входах.

    Вызов функции-генератора не вызывает немедленное исполнение её тела; вместо этого в ней возвращается объект итератор. При вызове метода итератора next(), тело функции-генератора возобновляет свою работу до первого встреченного оператора yield, который определяет возвращаемое значение или делегирует возврат другому генератору при помощи yield* anotherGenerator().

    Примеры

    Простой пример

    function* idMaker(){
        var index = 0;
        while(true)
            yield index++;
    }
    
    var gen = idMaker();
    
    console.log(gen.next().value); // 0
    console.log(gen.next().value); // 1
    console.log(gen.next().value); // 2
    // ...

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

    Спецификация Статус Комментарий
    Предложение Harmony Черновик Начало работы над стандартом.
    ECMAScript 6 (ECMA-262)
    Определение 'Генераторы' в этой спецификации.
    Черновик Изначальное определение в стандарте ECMA.

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

    Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
    Базовая поддержка 39 26.0 (26.0) Нет 26 Нет
    Возможность Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
    Базовая поддержка yes (when?) 27.0 (27.0) Нет Нет Нет

    Генераторы и итераторы до версии Firefox 26

    В старых версиях Firefox была реализована иная версия генераторов. В ней генераторы определялись обычным ключевым словом function (без звёздочки) и имели некоторые другие отличия.

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

    Метки документа и участники

    На данную страницу внесли свой вклад: dtretyakov
    Обновлялась последний раз: dtretyakov,
    Скрыть боковую панель