aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/classes
diff options
context:
space:
mode:
authorAlexey Pyltsyn <lex61rus@gmail.com>2021-10-27 02:31:24 +0300
committerGitHub <noreply@github.com>2021-10-27 02:31:24 +0300
commit980fe00a74a9ad013b945755415ace2e5429c3c2 (patch)
treea1c6bb4b302e69bfa53eab13e44500eba55d1696 /files/ru/web/javascript/reference/classes
parent374a039b97a11ee7306539d16aaab27fed66b398 (diff)
downloadtranslated-content-980fe00a74a9ad013b945755415ace2e5429c3c2.tar.gz
translated-content-980fe00a74a9ad013b945755415ace2e5429c3c2.tar.bz2
translated-content-980fe00a74a9ad013b945755415ace2e5429c3c2.zip
[RU] Remove notranslate (#2874)
Diffstat (limited to 'files/ru/web/javascript/reference/classes')
-rw-r--r--files/ru/web/javascript/reference/classes/constructor/index.html20
-rw-r--r--files/ru/web/javascript/reference/classes/index.html36
-rw-r--r--files/ru/web/javascript/reference/classes/private_class_fields/index.html16
-rw-r--r--files/ru/web/javascript/reference/classes/public_class_fields/index.html26
4 files changed, 49 insertions, 49 deletions
diff --git a/files/ru/web/javascript/reference/classes/constructor/index.html b/files/ru/web/javascript/reference/classes/constructor/index.html
index 3b0b38b700..81546fdb27 100644
--- a/files/ru/web/javascript/reference/classes/constructor/index.html
+++ b/files/ru/web/javascript/reference/classes/constructor/index.html
@@ -14,13 +14,13 @@ translation_of: Web/JavaScript/Reference/Classes/constructor
<h2 id="Синтаксис">Синтаксис</h2>
-<pre class="syntaxbox notranslate">constructor([arguments]) { ... }</pre>
+<pre class="syntaxbox">constructor([arguments]) { ... }</pre>
<h2 id="Описание">Описание</h2>
<p>Конструктор позволяет произвести начальную инициализацию, которая должна быть выполнена до того, как остальные методы будут вызваны.</p>
-<pre class="notranslate">class Person {
+<pre>class Person {
constructor(name) {
this.name = name;
@@ -38,17 +38,17 @@ otto.introduce();</pre>
<p>Если вы не определили метод constructor, то будет использован конструктор по умолчанию. Если ваш класс базовый, то конструктор по умолчанию пустой:</p>
-<pre class="notranslate">constructor() {}</pre>
+<pre>constructor() {}</pre>
<p>Если ваш класс является производным классом, конструктор по умолчанию вызывает родительский конструктор, передавая любые аргументы, которые были предоставлены:</p>
-<pre class="notranslate">constructor(...args) {
+<pre>constructor(...args) {
super(...args);
}</pre>
<p>Это позволяет работать следующему коду:</p>
-<pre class="notranslate">class ValidationError extends Error {
+<pre>class ValidationError extends Error {
printCustomerMessage() {
return `Проверка не удалась :-( (подробности: ${this.message})`;
@@ -72,7 +72,7 @@ try {
<p>Однако, если определён ваш собственный конструктор и класс является производным от какого-либо родительского класса, то вы должны явно объявить конструктор родительского класса, используя <code>super</code>. К примеру:</p>
-<pre class="notranslate">class ValidationError extends Error {
+<pre>class ValidationError extends Error {
constructor(message) {
super(message); // вызов конструктора родительского класса
@@ -106,7 +106,7 @@ try {
<p>Данный фрагмент кода взят из <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html">classes sample</a> (<a href="https://googlechrome.github.io/samples/classes-es6/index.html">live demo</a>).</p>
-<pre class="brush: js notranslate">class Square extends Polygon {
+<pre class="brush: js">class Square extends Polygon {
constructor(length) {
// Здесь вызывается конструктор родительского класса,
// в который передаётся length в качестве аргументов,
@@ -130,7 +130,7 @@ try {
<p>Посмотрите на этот отрывок кода.</p>
-<pre class="brush: js notranslate">class Polygon {
+<pre class="brush: js">class Polygon {
constructor() {
this.name = "Polygon";
}
@@ -158,11 +158,11 @@ console.log(newInstance.name); //Polygon</pre>
<p>Если вы не определите метод constructor, будет использован constructor по умолчанию. Для базовых классов, constructor по умолчанию:</p>
-<pre class="brush: js notranslate">constructor() {}</pre>
+<pre class="brush: js">constructor() {}</pre>
<p>Для производных классов, constructor по умолчанию:</p>
-<pre class="brush: js notranslate">constructor(...args) {
+<pre class="brush: js">constructor(...args) {
super(...args);
}</pre>
diff --git a/files/ru/web/javascript/reference/classes/index.html b/files/ru/web/javascript/reference/classes/index.html
index f8a63e92b2..742cd341ca 100644
--- a/files/ru/web/javascript/reference/classes/index.html
+++ b/files/ru/web/javascript/reference/classes/index.html
@@ -22,7 +22,7 @@ translation_of: Web/JavaScript/Reference/Classes
<p>Первый способ определения класса — <strong>class declaration (</strong><em>объявление класса</em><strong>)</strong>. Для этого необходимо воспользоваться ключевым словом <code>class</code> и указать имя класса (в примере — «Rectangle»).</p>
-<pre class="brush: js notranslate"><code>class Rectangle {
+<pre class="brush: js"><code>class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
@@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Classes
<p>Разница между <em>объявлением функции</em> (<em>function declaration</em>) и <em>объявлением класса</em> (<em>class declaration</em>) в том, что <em>объявление функции</em> совершает подъём ({{Glossary("Hoisting", "hoisting")}}), в то время как <em>объявление класса</em> — нет. Поэтому вначале необходимо объявить ваш класс и только затем работать с ним, а код же вроде следующего сгенерирует исключение типа {{jsxref("ReferenceError")}}:</p>
-<pre class="brush: js notranslate"><code>var p = new Rectangle(); // ReferenceError
+<pre class="brush: js"><code>var p = new Rectangle(); // ReferenceError
class Rectangle {}</code></pre>
@@ -41,7 +41,7 @@ class Rectangle {}</code></pre>
<p>Второй способ определения класса — <strong>class expression (</strong><em>выражение класса</em><strong>)</strong>. Можно создавать именованные и безымянные выражения. В первом случае имя выражения класса находится в локальной области видимости класса и может быть получено через свойства самого класса, а не его экземпляра.</p>
-<pre class="brush: js notranslate"><code>// безымянный
+<pre class="brush: js"><code>// безымянный
var Rectangle = class {
constructor(height, width) {
this.height = height;
@@ -84,7 +84,7 @@ console.log(Rectangle.name);
<p>Смотрите также <a href="/ru/docs/Web/JavaScript/Reference/Functions/%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2">определение методов</a>.</p>
-<pre class="brush: js notranslate"><code>class Rectangle {
+<pre class="brush: js"><code>class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
@@ -107,7 +107,7 @@ console.log(square.area); // 100</code></pre>
<p>Ключевое слово <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/static">static</a></code>, определяет статический метод или свойства для класса. Статические методы и свойства вызываются без <a href="/ru/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#The_Object_.28Class_Instance.29">инстанцирования</a> их класса, и <strong>не могут</strong> быть вызваны у экземпляров (<em>instance</em>) класса. Статические методы, часто используются для создания служебных функций для приложения, в то время как статические свойства полезны для кеширования в рамках класса, фиксированной конфигурации или любых других целей, не связанных с реплецированием данных между экземплярами.</p>
-<pre class="brush: js notranslate"><code>class Point {
+<pre class="brush: js"><code>class Point {
constructor(x, y) {
this.x = x;
this.y = y;
@@ -136,7 +136,7 @@ console.log(Point.distance(p1, p2)); // 7.0710678118654755</code></pre>
<p>Когда статический или прототипный метод вызывается без привязки к <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> объекта (или когда <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> является типом boolean, string, number, undefined, null), тогда <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> будет иметь значение <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">undefined</span></font> внутри вызываемой функции. Автоупаковка не будет произведена. Поведение будет таким же как если бы мы писали код в нестрогом режиме.</p>
-<pre class="brush: js notranslate"><code>class Animal {
+<pre class="brush: js"><code>class Animal {
speak() {
return this;
}
@@ -156,7 +156,7 @@ eat(); // undefined</code></pre>
<p>Если мы напишем этот же код используя классы основанные на функциях, тогда произойдёт автоупаковка основанная на значении <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font>, в течение которого функция была вызвана. В строгом режиме автоупаковка не произойдёт - значение <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> останется прежним.</p>
-<pre class="brush: js notranslate"><code>function Animal() { }
+<pre class="brush: js"><code>function Animal() { }
Animal.prototype.speak = function(){
return this;
@@ -178,7 +178,7 @@ eat(); // глобальный объект (нестрогий режим)</cod
<p>Свойства экземпляра должны быть определены в методе класса:</p>
-<pre class="notranslate">class Rectangle {
+<pre>class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
@@ -187,7 +187,7 @@ eat(); // глобальный объект (нестрогий режим)</cod
<p>Статические (class-side) свойства и свойства прототипа должны быть определены за рамками тела класса:</p>
-<pre class="notranslate">Rectangle.staticWidth = 20;
+<pre>Rectangle.staticWidth = 20;
Rectangle.prototype.prototypeWidth = 25;
</pre>
@@ -201,7 +201,7 @@ Rectangle.prototype.prototypeWidth = 25;
<p>Используя Javascript синтаксис определения полей, приведённый выше пример может быть изменён следующим образом:</p>
-<pre class="notranslate">class Rectangle {
+<pre>class Rectangle {
height = 0;
width;
constructor(height, width) {
@@ -218,7 +218,7 @@ Rectangle.prototype.prototypeWidth = 25;
<p>Предыдущий пример может быть изменён следующим образом, используя приватные поля:</p>
-<pre class="notranslate">class Rectangle {
+<pre>class Rectangle {
#height = 0;
#width;
constructor(height, width) {
@@ -241,7 +241,7 @@ Rectangle.prototype.prototypeWidth = 25;
<p>Ключевое слово <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/extends">extends</a></code> используется в <em>объявлениях классов</em> и <em>выражениях классов</em> для создания класса, дочернего относительно другого класса.</p>
-<pre class="brush: js notranslate"><code class="language-js">class Animal {
+<pre class="brush: js"><code class="language-js">class Animal {
constructor(name) {
this.name = name;
}</code>
@@ -268,7 +268,7 @@ d.speak(); // Митци лает</code></pre>
<p>Аналогичным образом можно расширять традиционные, основанные на функциях "классы":</p>
-<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">function Animal (name) {
+<pre class="brush: js line-numbers language-js"><code class="language-js">function Animal (name) {
this.name = name;
}
Animal.prototype.speak = function () {
@@ -288,7 +288,7 @@ d.speak(); // Митци лает
<p>Обратите внимание, что классы не могут расширять обычные (non-constructible) объекты. Если вам необходимо создать наследование от обычного объекта, в качестве замены можно использовать {{jsxref("Object.setPrototypeOf()")}}:</p>
-<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var Animal = {
+<pre class="brush: js line-numbers language-js"><code class="language-js">var Animal = {
speak() {
console.log(</code>`${this.name} издаёт звук.`<code class="language-js">);
}
@@ -312,7 +312,7 @@ d.speak(); // Митци издаёт звук.</code></pre>
<p>Например, при использовании таких методов, как {{jsxref("Array.map", "map()")}}, который возвращает конструктор по умолчанию, вам хотелось бы, чтобы они возвращали родительский объект <code>Array</code> вместо объекта <code>MyArray</code>. Символ {{jsxref("Symbol.species")}} позволяет это реализовать:</p>
-<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">class MyArray extends Array {
+<pre class="brush: js line-numbers language-js"><code class="language-js">class MyArray extends Array {
// Изменить species на родительский конструктор Array
static get [Symbol.species]() { return Array; }
}
@@ -326,7 +326,7 @@ console.log(mapped instanceof Array); // true</code></pre>
<p>Ключевое слово <code><a href="/ru/docs/Web/JavaScript/Reference/Operators/super">super</a></code> используется для вызова функций на родителе объекта.</p>
-<pre class="brush: js language-js notranslate"><code class="language-js">class Cat {
+<pre class="brush: js language-js"><code class="language-js">class Cat {
constructor(name) {
this.name = name;
}
@@ -355,7 +355,7 @@ l.speak();
<p>Для реализации mix-ins в ECMAScript можно использовать функцию, которая в качестве аргумента принимает родительский класс, а возвращает подкласс, его расширяющий:</p>
-<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var calculatorMixin = Base =&gt; class extends Base {
+<pre class="brush: js line-numbers language-js"><code class="language-js">var calculatorMixin = Base =&gt; class extends Base {
calc() { }
};
@@ -365,7 +365,7 @@ var randomizerMixin = Base =&gt; class extends Base {
<p>Класс, использующий такие mix-ins, можно описать следующим образом:</p>
-<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">class Foo { }
+<pre class="brush: js line-numbers language-js"><code class="language-js">class Foo { }
class Bar extends calculatorMixin(randomizerMixin(Foo)) { }</code></pre>
<h2 id="Спецификации">Спецификации</h2>
diff --git a/files/ru/web/javascript/reference/classes/private_class_fields/index.html b/files/ru/web/javascript/reference/classes/private_class_fields/index.html
index 356e8b5517..597d98ebeb 100644
--- a/files/ru/web/javascript/reference/classes/private_class_fields/index.html
+++ b/files/ru/web/javascript/reference/classes/private_class_fields/index.html
@@ -10,7 +10,7 @@ original_slug: Web/JavaScript/Reference/Classes/Приватные_поля_кл
<h2 id="Синтаксис">Синтаксис</h2>
-<pre class="syntaxbox notranslate">class ClassWithPrivateField {
+<pre class="syntaxbox">class ClassWithPrivateField {
#privateField
}
@@ -33,7 +33,7 @@ class ClassWithPrivateStaticField {
<p>Ограничение статических переменных, вызываемых только статическими методами, все ещё сохраняется.</p>
-<pre class="brush: js notranslate">class ClassWithPrivateStaticField {
+<pre class="brush: js">class ClassWithPrivateStaticField {
  static #PRIVATE_STATIC_FIELD
  static publicStaticMethod() {
@@ -50,7 +50,7 @@ console.assert(ClassWithPrivateStaticField.publicStaticMethod() === 42)</pre>
<p>Это может привести к неожиданному поведению при использовании this.</p>
-<pre class="brush: js notranslate">class BaseClassWithPrivateStaticField {
+<pre class="brush: js">class BaseClassWithPrivateStaticField {
  static #PRIVATE_STATIC_FIELD
  static basePublicStaticMethod() {
@@ -76,7 +76,7 @@ console.assert(error instanceof TypeError)
<p><span class="tlid-translation translation" lang="ru"><span title="">Инкапсуляция обеспечивается языком.</span> <span title="">Обращение к <code>#</code> именам вне области видимости является синтаксической ошибкой.</span></span></p>
-<pre class="brush: js notranslate">class ClassWithPrivateField {
+<pre class="brush: js">class ClassWithPrivateField {
  #privateField
  constructor() {
@@ -99,7 +99,7 @@ instance.#privateField === 42 // Syntax error
<p>Приватные статические методы могут быть генераторами, асинхронными функциями и асинхронными функциями-генераторами.</p>
-<pre class="brush: js notranslate">class ClassWithPrivateStaticMethod {
+<pre class="brush: js">class ClassWithPrivateStaticMethod {
    static #privateStaticMethod() {
        return 42
    }
@@ -119,7 +119,7 @@ console.assert(ClassWithPrivateStaticMethod.publicStaticMethod2() === 42);
<p>Это может привести к неожиданному поведению при его использовании <strong><code>this</code></strong>. В следующем примере <code>this</code> относится к классу <code>Derived</code> (а не к классу <code>Base</code>), когда мы пытаемся вызвать <code>Derived.publicStaticMethod2()</code>, и, таким образом, имеет такое же "ограничение по происхождению", как упоминалось выше:</p>
-<pre class="brush: js notranslate">class Base {
+<pre class="brush: js">class Base {
    static #privateStaticMethod() {
        return 42;
    }
@@ -141,7 +141,7 @@ console.log(Derived.publicStaticMethod2()); // TypeError
<p>Приватные методы экземпляров это методы, доступные у экземпляров класса, доступ к которым запрещён также, как у приватных полей класса.</p>
-<pre class="brush: js notranslate">class ClassWithPrivateMethod {
+<pre class="brush: js">class ClassWithPrivateMethod {
  #privateMethod() {
    return 'hello world'
  }
@@ -157,7 +157,7 @@ console.log(instance.getPrivateMessage())
<p>Приватные методы экземпляров могут быть генератором, async, или функциями async генератора. Приватные геттеры и сеттеры также возможны:</p>
-<pre class="brush: js notranslate">class ClassWithPrivateAccessor {
+<pre class="brush: js">class ClassWithPrivateAccessor {
  #message
  get #decoratedMessage() {
diff --git a/files/ru/web/javascript/reference/classes/public_class_fields/index.html b/files/ru/web/javascript/reference/classes/public_class_fields/index.html
index 865babfded..0c4eb7a7ea 100644
--- a/files/ru/web/javascript/reference/classes/public_class_fields/index.html
+++ b/files/ru/web/javascript/reference/classes/public_class_fields/index.html
@@ -47,7 +47,7 @@ class ClassWithPublicInstanceMethod {
<p>Публичные статические поля объявляются при помощи ключевого слова <code>static</code>. Они добавляются в конструктор класса во время его создания с помощью {{jsxref("Global_Objects/Object/defineProperty", "Object.defineProperty()")}}. Доступ также осуществляется через конструктор класса.</p>
-<pre class="brush: js notranslate">class ClassWithStaticField {
+<pre class="brush: js">class ClassWithStaticField {
  static staticField = 'static field';
}
@@ -57,7 +57,7 @@ console.log(ClassWithStaticField.staticField);
<p>Поля без инициализации имеют значение <code>undefined</code>.</p>
-<pre class="brush: js notranslate">class ClassWithStaticField {
+<pre class="brush: js">class ClassWithStaticField {
  static staticField;
}
@@ -67,7 +67,7 @@ console.log(ClassWithStaticField.staticField);
<p>Публичные статические поля не переопределяются в наследниках класса, а могут быть доступны через иерархию прототипов.</p>
-<pre class="brush: js notranslate">class ClassWithStaticField {
+<pre class="brush: js">class ClassWithStaticField {
  static baseStaticField = 'base field';
}
@@ -83,7 +83,7 @@ console.log(SubClassWithStaticField.baseStaticField);
<p>При определении полей <code>this</code> ссылается на конструктор класса. Также можно обратиться к нему по имени и использовать <code>super</code> для получения конструктора базового класса, если он существует.</p>
-<pre class="brush: js notranslate">class ClassWithStaticField {
+<pre class="brush: js">class ClassWithStaticField {
  static baseStaticField = 'base static field';
  static anotherBaseStaticField = this.baseStaticField;
@@ -108,7 +108,7 @@ console.log(SubClassWithStaticField.subStaticField);
<p>Публичные поля экземпляра добавляются через {{jsxref("Global_Objects/Object/defineProperty",
"Object.defineProperty()")}} либо перед тем, как будет исполнено тело конструктора в базовом классе, либо после того, как завершится <code>super()</code> в классе наследнике.</p>
-<pre class="brush: js notranslate">class ClassWithInstanceField {
+<pre class="brush: js">class ClassWithInstanceField {
instanceField = 'instance field';
}
@@ -118,7 +118,7 @@ console.log(instance.instanceField);
<p>Поля без инициализации имеют значение <code>undefined</code>.</p>
-<pre class="brush: js notranslate">class ClassWithInstanceField {
+<pre class="brush: js">class ClassWithInstanceField {
  instanceField;
}
@@ -129,7 +129,7 @@ console.log(instance.instanceField);
<p>Как и свойства, названия полей могут вычисляться.</p>
-<pre class="brush: js notranslate">const PREFIX = 'prefix';
+<pre class="brush: js">const PREFIX = 'prefix';
class ClassWithComputedFieldName {
    [`${PREFIX}Field`] = 'prefixed field';
@@ -141,7 +141,7 @@ console.log(instance.prefixField);
<p>При определении полей <code>this</code> ссылается на создающийся экземпляр класса. Как и в публичных методах экземпляра, получить доступ к прототипу базового класса можно с помощью <code>super</code>.</p>
-<pre class="brush: js notranslate">class ClassWithInstanceField {
+<pre class="brush: js">class ClassWithInstanceField {
  baseInstanceField = 'base field';
  anotherBaseInstanceField = this.baseInstanceField;
  baseInstanceMethod() { return 'base method output'; }
@@ -166,7 +166,7 @@ console.log(sub.subInstanceField);
<p>Ключевое слово <code><strong>static</strong></code> объявляет статический метод класса. Статические методы не вызываются из экземпляра, вместо этого они вызывается из самого класса. Чаще всего это какие-либо служебные функции, такие как функции создания или копирования объектов.</p>
-<pre class="brush: js notranslate">class ClassWithStaticMethod {
+<pre class="brush: js">class ClassWithStaticMethod {
static staticMethod() {
return 'static method has been called.';
}
@@ -182,7 +182,7 @@ console.log(ClassWithStaticMethod.staticMethod());
<p>Как и следует из названия, публичные методы экземпляра это методы, доступные для вызова из экземпляров.</p>
-<pre class="brush: js notranslate">class ClassWithPublicInstanceMethod {
+<pre class="brush: js">class ClassWithPublicInstanceMethod {
publicMethod() {
return 'hello world';
}
@@ -196,7 +196,7 @@ console.log(instance.publicMethod());
<p>Вы можете использовать генераторы, асинхронные функции и асинхронные генераторы.</p>
-<pre class="brush: js notranslate">class ClassWithFancyMethods {
+<pre class="brush: js">class ClassWithFancyMethods {
*generatorMethod() { }
async asyncMethod() { }
async *asyncGeneratorMethod() { }
@@ -205,7 +205,7 @@ console.log(instance.publicMethod());
<p>Внутри методов экземпляра, <code>this</code> ссылается на сам экземпляр.<br>
В классах наследниках, <code>super</code> даёт доступ к прототипу базового класса, позволяя вызывать его методы.</p>
-<pre class="brush: js notranslate">class BaseClass {
+<pre class="brush: js">class BaseClass {
  msg = 'hello world';
  basePublicMethod() {
    return this.msg;
@@ -225,7 +225,7 @@ console.log(instance.subPublicMethod());
<p>Геттеры и сеттеры это специальные методы, которые привязаны к свойствам класса и которые вызываются, когда к свойству обращаются или записывают. Используйте <a href="/ru/docs/Web/JavaScript/Reference/Functions/get">get</a> и <a href="/ru/docs/Web/JavaScript/Reference/Functions/set">set</a> для объявления публичных геттеров и сеттеров экземпляра.</p>
-<pre class="brush: js notranslate">class ClassWithGetSet {
+<pre class="brush: js">class ClassWithGetSet {
  #msg = 'hello world';
  get msg() {
    return this.#msg;