Campos de clase, campos privados # y miembros static
Cree clases con campos públicos, oculte datos con campos privados # y añada propiedades o métodos static.
Campos de clase, campos privados # y miembros static es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 3 lecciones en total.
¿Por qué usar clases?
Objetivo: Crear clases pequeñas y claras.
- Campos y métodos públicos
- Campos #private para ocultar el estado
- Propiedades y métodos static para utilidades de clase
- Mantenga los ejemplos pequeños y legibles

Campos públicos y constructor
Cree una clase con un campo público y métodos pequeños; mantenga la lógica sencilla para principiantes.
// Public fields and a simple method
class Counter {
// public field with default
value = 0;
constructor(start) {
// use a default if start is not provided
this.value = Number.isFinite(start) ? start : 0;
}
inc() {
this.value = this.value + 1;
}
}
const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3

Campos #private
Los campos #private están protegidos por el lenguaje y solo se pueden utilizar dentro del cuerpo de la clase. Exponga métodos de lectura si es necesario.
// Private # fields hide internal state
class SafeCounter {
// private field (only inside the class)
#value = 0;
constructor(start) {
this.#value = Number.isFinite(start) ? start : 0;
}
inc() { this.#value = this.#value + 1; }
getValue() { return this.#value; } // expose via method
}
const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());
// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);

Getters para lecturas seguras
Un getter puede devolver un valor derivado o validado y, al mismo tiempo, mantener privado el campo.
// Getters provide read-only views; simple guard logic
class User {
#name = "Anonymous";
constructor(name) {
if (typeof name === "string" && name.trim().length > 0) {
this.#name = name.trim();
}
}
get name() {
return this.#name;
}
}
const u = new User(" Ayla ");
console.log("name:", u.name);

Miembros static
Los miembros static se llaman sobre la clase (por ejemplo, MathHelp.circleArea()), no sobre las instancias.
// Static = belongs to the class, not to instances
class MathHelp {
static PI = 3.14159;
static circleArea(r) {
if (!(typeof r === "number" && r >= 0)) return 0;
return MathHelp.PI * r * r;
}
}
console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));
// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false

Hábitos adecuados para principiantes
Consejos:
- Prefiera clases pequeñas con pocos métodos claros.
- Use #private para una privacidad real; los guiones bajos son solo una convención de nombres.
- Coloque las constantes y utilidades en miembros static.
- Exponga métodos de lectura mínimos (getters) si necesita acceso desde fuera.

Cuestionario sobre los fundamentos de los campos privados
Comprobación rápida: Campos #private.

Resumen
Resumen: Use campos públicos para un estado sencillo, #private para ocultar los detalles internos y static para utilidades de clase. Mantenga cada clase pequeña y fácil de leer.

Preguntas frecuentes
¿La lección «Campos de clase, campos privados # y miembros static» es gratis?
Sí — el texto completo de «Campos de clase, campos privados # y miembros static» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Campos de clase, campos privados # y miembros static»?
Cree clases con campos públicos, oculte datos con campos privados # y añada propiedades o métodos static. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar JavaScript Academy?
No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.
¿Cuánto tiempo toma la lección «Campos de clase, campos privados # y miembros static»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?
Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Campos de clase, campos privados # y miembros static
- Herencia, super y cuándo preferir la composición
- Mixins (introducción): reutilización sencilla sin jerarquías profundas