Exportaciones por defecto vs. nombradas
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy. Lección 10 de 56.
En los módulos de JavaScript, tienes dos formas principales de exportar tu código: exportaciones named y exportaciones default.
Exportaciones con nombre te permiten exportar varios valores desde un módulo:
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}Al importar exportaciones con nombre, debes usar exactamente los mismos nombres dentro de las llaves:
// app.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6Si necesitas cambiar el nombre de una importación con nombre, usa la palabra clave as para crear un alias:
// app.js
import { add as sum, subtract as minus } from './math.js';
console.log(sum(5, 3)); // 8
console.log(minus(10, 4)); // 6Las exportaciones predeterminadas te permiten exportar un único valor principal desde un módulo:
// user.js
const user = {
name: 'John',
age: 30
};
export default user;Al importar una exportación predeterminada, puedes usar cualquier nombre que quieras sin llaves:
// app.js
import person from './user.js';
console.log(person.name); // 'John'¿Cuándo usar cuál? Usa exportaciones con nombre cuando un módulo proporcione varias utilidades relacionadas (por ejemplo, una colección de funciones auxiliares). Usa una exportación predeterminada cuando un módulo tenga un propósito principal o un valor principal (por ejemplo, una clase, un componente o un objeto de configuración).
Puedes combinar ambos tipos de exportaciones en un solo módulo:
// vehicle.js
export const wheels = 4;
export const doors = 4;
const car = {
brand: 'Toyota',
model: 'Corolla'
};
export default car;Y impórtalos juntos:
// app.js
import myCar, { wheels, doors } from './vehicle.js';
console.log(myCar.brand); // 'Toyota'
console.log(wheels); // 4Desafío
FácilTienes dos archivos. Tu tarea es configurar las exportaciones en calculator.js y las importaciones en main.js.
- En
calculator.js: exportacalculatecomo predeterminada ysquarecomo con nombre - En
main.js: importa ambas funciones correctamente
Las pruebas comprobarán:
- Exportación predeterminada utilizada para
calculate - Exportación con nombre utilizada para
square - Ambas importaciones funcionan correctamente
Pruébalo tú mismo
// TODO: Importa ambas funciones aquí desde calculator.js
// Prueba
console.log(calculate(10, 5, '+')); // Debería mostrar 15
console.log(square(4)); // Debería mostrar 16Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase CírculoSobrescritura y método de áreaContador de figuras estático14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con ComposiciónValidación del Autor del Libro9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repasoPractica por tu cuenta: Compilador de JavaScript online