Baseline Widely available
Class declaration ÑоздаÑÑ Ð½Ð¾Ð²Ñй клаÑÑ Ñ Ð´Ð°Ð½Ð½Ñм именем на оÑнове пÑоÑоÑипного наÑледованиÑ.
Ðожно Ñак же опÑеделиÑÑ ÐºÐ»Ð°ÑÑ, иÑполÑзÑÑ class expression. Ðо в оÑлиÑие Ð¾Ñ class expression, class declaration не позволÑÐµÑ Ñнова обÑÑвиÑÑ Ñже ÑÑÑеÑÑвÑÑÑий клаÑÑ, ÑÑо пÑиведÑÑ Ðº оÑибке Ñипа.
СинÑакÑиÑclass name [extends] {
// Ñело клаÑÑа
}
ÐпиÑание
Ðак и class expression, Ñело class declaration бÑÐ´ÐµÑ Ð¸ÑполнÑÑÑÑÑ Ð² ÑÑÑогом Ñежиме. СвойÑÑво конÑÑÑÑкÑоÑа ÑвлÑеÑÑÑ Ð¾Ð¿ÑионалÑнÑм.
Class declaration не поднимаеÑÑÑ (в оÑлиÑие Ð¾Ñ Ð´ÐµÐºÐ»Ð°ÑиÑÑемÑÑ ÑÑнкÑий).
ÐÑимеÑÑ ÐÑоÑÑой class declarationÐ ÑледÑÑÑем пÑимеÑе ÑнаÑала опÑеделÑеÑÑÑ ÐºÐ»Ð°ÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ Polygon, заÑем он наÑледÑеÑÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»Ð°ÑÑа Square. ÐамеÑÑÑе, ÑÑо super(), иÑполÑзÑемÑй в конÑÑÑÑкÑоÑе, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзован ÑолÑко в конÑÑÑÑкÑоÑе и должен бÑÑÑ Ð²Ñзван до Ñого, как бÑÐ´ÐµÑ Ð¸ÑполÑзовано клÑÑевое Ñлово this.
class Polygon {
constructor(height, width) {
this.name = "Polygon";
this.height = height;
this.width = width;
}
}
class Square extends Polygon {
constructor(length) {
super(length, length);
this.name = "Square";
}
}
ÐÑедÑпÑеждение: ÐопÑÑка обÑÑвиÑÑ ÐºÐ»Ð°ÑÑ Ð´Ð²Ð°Ð¶Ð´ÑÐеÑеопÑеделение клаÑÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ class declaration вÑÐ·Ð¾Ð²ÐµÑ Ð¾ÑÐ¸Ð±ÐºÑ Ñипа. js class Foo {}; class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared
Та же оÑибка бÑÐ´ÐµÑ Ð²Ñзвана, еÑли клаÑÑ Ð±Ñл опÑеделÑн пеÑед иÑполÑзованием class declaration.
var Foo = class {};
class Foo {} // Uncaught TypeError: Identifier 'Foo' has already been declared
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4