Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Выражения и операторы
  5. class expression

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

class expression

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨март 2016 г.⁩.

Class expression это способ определения класса в ECMAScript 2015 (ES6). Схожий сfunction expressions, class expressions может быть именованным либо не иметь имени. Если он именованный, то его имя доступно только внутри класса. JavaScript классы используют прототипно-ориентирование наследование.

Синтаксис

var MyClass = class [className] [extends] {  // тело класса};

Описание

Class expression имеет схожий синтаксис сclass declaration (statement). Однако в class expression можно опустить имя класса ("binding identifier"), что не допустимо сclass declaration. Также class expression позволяет повторно объявить уже существующий класс и этоне приведёт к ошибке типа, как при использованииclass declaration. Свойство конструктора является опциональным. Результатом вызова оператораtypeof на классах, сгенерированных при помощи class expression, всегда будет "function".

Так же, как и при использовании class declaration, тело класса у class expression будет исполняться встрогом режиме.

js
"use strict";var Foo = class {}; // свойство конструктора опциональноvar Foo = class {}; // повторное объявление разрешеноtypeof Foo; // возвращает "function"typeof class {}; // возвращает "function"Foo instanceof Object; // trueFoo instanceof Function; // trueclass Foo {} // Throws TypeError, doesn't allow re-declaration

Примеры

Простой class expression

Простой анонимный class expression, на который можно сослаться с помощью переменной "Foo".

js
var Foo = class {  constructor() {}  bar() {    return "Hello World!";  }};var instance = new Foo();instance.bar(); // "Hello World!"Foo.name; // "Foo"

Именованный class expression

Если вы хотите сослаться на конкретный класс внутри тела класса, вы можете создать именованный class expression. Это имя будет доступно только внутри области видимости самого class expression.

js
var Foo = class NamedFoo {  constructor() {}  whoIsThere() {    return NamedFoo.name;  }};var bar = new Foo();bar.whoIsThere(); // "NamedFoo"NamedFoo.name; // ReferenceError: NamedFoo is not definedFoo.name; // "NamedFoo"

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-class-definitions

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp