| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Classes/Public_class_fields | [Back] [Original] |
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. Its been available across browsers since 2022 ..
, , , . , , .
class ClassWithInstanceField {
instanceField = "instance field";
}
class ClassWithStaticField {
static staticField = "static field";
}
class ClassWithPublicInstanceMethod {
publicMethod() {
return "hello world";
}
}
, , . , , .
static. Object.defineProperty(). .
class ClassWithStaticField {
static staticField = "static field";
}
console.log(ClassWithStaticField.staticField);
// : "static field"
("javascript.classes").
class ClassWithStaticField {
static staticField;
}
console.assert(ClassWithStaticField.hasOwnProperty("staticField"));
console.log(ClassWithStaticField.staticField);
// : "undefined"
, .
class ClassWithStaticField {
static baseStaticField = "base field";
}
class SubClassWithStaticField extends ClassWithStaticField {
static subStaticField = "sub class field";
}
console.log(SubClassWithStaticField.subStaticField);
// : "sub class field"
console.log(SubClassWithStaticField.baseStaticField);
// : "base field"
this . super , .
class ClassWithStaticField {
static baseStaticField = "base static field";
static anotherBaseStaticField = this.baseStaticField;
static baseStaticMethod() {
return "base static method output";
}
}
class SubClassWithStaticField extends ClassWithStaticField {
static subStaticField = super.baseStaticMethod();
}
console.log(ClassWithStaticField.anotherBaseStaticField);
// : "base static field"
console.log(SubClassWithStaticField.subStaticField);
// : "base static method output"
. , , , .
Object.defineProperty() , , , super() .
class ClassWithInstanceField {
instanceField = "instance field";
}
const instance = new ClassWithInstanceField();
console.log(instance.instanceField);
// : "instance field"
undefined.
class ClassWithInstanceField {
instanceField;
}
const instance = new ClassWithInstanceField();
console.assert(instance.hasOwnProperty("instanceField"));
console.log(instance.instanceField);
// : "undefined"
, .
const PREFIX = "prefix";
class ClassWithComputedFieldName {
[`${PREFIX}Field`] = "prefixed field";
}
const instance = new ClassWithComputedFieldName();
console.log(instance.prefixField);
// : "prefixed field"
this . , super.
class ClassWithInstanceField {
baseInstanceField = "base field";
anotherBaseInstanceField = this.baseInstanceField;
baseInstanceMethod() {
return "base method output";
}
}
class SubClassWithInstanceField extends ClassWithInstanceField {
subInstanceField = super.baseInstanceMethod();
}
const base = new ClassWithInstanceField();
const sub = new SubClassWithInstanceField();
console.log(base.anotherBaseInstanceField);
// : "base field"
console.log(sub.subInstanceField);
// : "base method output"
static . , . - , .
class ClassWithStaticMethod {
static staticMethod() {
return "static method has been called.";
}
}
console.log(ClassWithStaticMethod.staticMethod());
// expected output: "static method has been called."
Object.defineProperty() . , .
, , .
class ClassWithPublicInstanceMethod {
publicMethod() {
return "hello world";
}
}
const instance = new ClassWithPublicInstanceMethod();
console.log(instance.publicMethod());
// : "hello world"
, .
class ClassWithFancyMethods {
*generatorMethod() {}
async asyncMethod() {}
async *asyncGeneratorMethod() {}
}
, this .
, super , .
class BaseClass {
msg = "hello world";
basePublicMethod() {
return this.msg;
}
}
class SubClass extends BaseClass {
subPublicMethod() {
return super.basePublicMethod();
}
}
const instance = new SubClass();
console.log(instance.subPublicMethod());
// : "hello world"
class ClassWithGetSet {
#msg = "hello world";
get msg() {
return this.#msg;
}
set msg(x) {
this.#msg = `hello ${x}`;
}
}
const instance = new ClassWithGetSet();
console.log(instance.msg);
// : "hello world"
instance.msg = "cake";
console.log(instance.msg);
// : "hello cake"
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # prod-FieldDefinition |
This page was last modified on 29 . 2026 . by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |