Background Image
Table of Contents Table of Contents
Previous Page  58 / 68 Next Page
Information
Show Menu
Previous Page 58 / 68 Next Page
Page Background

CODE/

JAVASCRIPT

58

REVISTA LOCAWEB

Métodos Generator

Método:

next

Se não é um objeto generator,

Throw Error.

Call this.[[Next]] com

argumento único indefinido

Retorna o resultado.

Método:

send

Se não é um objeto generator,

Throw Error.

Call this.[[Send]] com

o primeiro argumento

Retorna o resultado.

Método:

throw

Se não é um objeto generator,

Throw Error.

Call this.[[Throw]] com

o primeiro argumento

Retorna o resultado.

Método:

close

Se não é um objeto generator,

Throw Error.

Call this.[[Close]] sem

argumentos

Retorna o resultado

Método:

iterate

Cada generator é um “iterator

object”, com um método iterate

(repetição, loop): Return this. Ou

seja, generators podem ser usados

automaticamente com loops for-of.

Um exemplo de uso de NEXT

em generators:

function* count() {

yield 1;

yield 2;

yield 3;

}

var counter = count();

counter.next(); // {value:

1, done: false}

counter.next(); // {value:

2, done: false}

counter.next(); // {value:

3, done: false}

counter.next(); // {done:

true, value: undefined}

Módulos

Até a versão anterior, a

única forma de usar módulos no

JavaScript era com bibliotecas

externas, como CommonJS

Modules. Agora é possível criar

e utilizar módulos diretamente

no JS 6.0.

Exemplo simples de módulo:

module 'math' {

export function sum(x,

y) {

return x + y;

}

export var pi =

3.141593;

}

Este módulo apresenta uma

função e uma declaração de

variável. Para usá-las, é preciso

importar o módulo, desta forma:

import {sum, pi} from

'math';

Em seguida podemos “chamar”

tanto a função quanto a variável:

alert("2p = " + sum(pi,

pi));

Classes

O JS 6.0 introduz suporte para

classes

(class),

constructors

(constructor) e

extend

para

herança. Isso permite um código

mais limpo e claro e, provavelmente,

PDLV U£SLGR H FRQí£YHO

Este é um exemplo de

classe “carro”:

class Carro {

constructor(make) { //

constructors!

this.make = make;

this.currentSpeed =

25;

}

printCurrentSpeed(){

console.log(this.

make + ' está a velocidade

de ' + this.currentSpeed +

' km/h.');

}

}

Uma classe que amplia a

classe Carro, criando topSpeed:

class RaceCar extends Carro

{ //herança

constructor(make,

topSpeed) {

super(make); //

chama (call) o constructor

com "super"

this.topSpeed =

topSpeed;

}

goFast(){

this.currentSpeed

= this.topSpeed;

}

}

O uso de classes também é

simples e elegante:

Google Chrome: facilidade de uso do JavaScript agrada a desenvolvedores web