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