ExpertiDict

JavaScript · Avançado · Inglês · Técnico

live binding

/laɪv ˈbaɪndɪŋ/substantivo

Nos módulos ES, o nome importado é uma ligação viva à variável exportada, não uma cópia. Se o módulo dono muda o valor, quem importou vê a mudança.

Onde usar

Aparece em code review ao comparar com CommonJS, onde require entrega uma cópia do valor. Também explica por que quem importa não pode reatribuir o nome: a ligação é somente leitura.

Em código

// contador.mjs
export let n = 0;
export function inc() { n++; }
// app.mjs
import { n, inc } from './contador.mjs';
inc();
console.log(n); // 1 (em CommonJS seria 0)

Exemplos

Imports are live bindings, so you see the updated value.

Imports são live bindings, então você vê o valor atualizado.

You can't reassign an imported name; the binding is read-only.

Você não pode reatribuir um nome importado; a ligação é somente leitura.

Cuidado

Tentar reatribuir uma variável importada, o que lança TypeError, pois só o módulo dono altera o valor.

Sinônimos

ligação viva

Veja também

Todos os termos de JavaScript