ΠΠΎΠ²ΡΠ΄ΠΎΠΌΠ»Π΅Π½Π½Ρ
TypeError: "x" is not a constructor TypeError: Math is not a constructor TypeError: JSON is not a constructor TypeError: Symbol is not a constructor TypeError: Reflect is not a constructor TypeError: Intl is not a constructor TypeError: SIMD is not a constructor TypeError: Atomics is not a constructor
Π’ΠΈΠΏ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ
Π ΡΠΎΠΌΡ ΡΠΏΡΠ°Π²Π°?
ΠΡΠ»Π° ΡΠΏΡΠΎΠ±Π° Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°ΡΠΈ ΠΎΠ±'ΡΠΊΡ ΡΠΈ Π·ΠΌΡΠ½Π½Ρ ΡΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π°Π»Π΅ ΡΠ°ΠΌ ΠΎΠ±'ΡΠΊΡ ΡΠΈ Π·ΠΌΡΠ½Π½Π° Π½Π΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ. ΠΠΈΠ²ΠΈΡΡ constructor ΡΠΈ new
operator Π΄Π»Ρ Π±ΡΠ»ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΡ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ.
Π£ JavaScript ΡΡΠ½ΡΡ Π±Π°Π³Π°ΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΈΡ
ΠΎΠ±'ΡΠΊΡΡΠ², Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ String
ΡΠΈ Array
, ΡΠΊΡ ΠΌΠΎΠΆΡΡΡ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ new
. ΠΠ΄Π½Π°ΠΊ, Π΄Π΅ΡΠΊΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Ρ ΠΎΠ±'ΡΠΊΡΠΈ Π½Π΅ ΠΌΠΎΠΆΡΡΡ, ΡΡ
Π²Π»Π°ΡΡΠΈΠ²ΠΎΡΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΡΠ°ΡΠΈΡΠ½Ρ. ΠΠ°ΡΡΡΠΏΠ½Ρ ΠΎΠ±'ΡΠΊΡΠΈ ΡΠ²Π»ΡΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ JavaScript, Π²ΠΎΠ½ΠΈ Π²Π±ΡΠ΄ΠΎΠ²Π°Π½Ρ Ρ Π½Π΅ ΠΌΠ°ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠ²: Math
, JSON
, Symbol
, Reflect
, Intl
, SIMD
, Atomics
.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ ΡΡΠ½ΠΊΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΡΡΡ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΆ.
ΠΡΠΈΠΊΠ»Π°Π΄ΠΈ
ΠΠΎΠΌΠΈΠ»ΠΊΠΎΠ²Ρ Π²ΠΈΠΏΠ°Π΄ΠΊΠΈ
var Car = 1;
new Car();
// TypeError: Car Π½Π΅ ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
new Math();
// TypeError: Math Π½Π΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ
new Symbol();
// TypeError: Symbol Π½Π΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ
function* f() {};
var obj = new f;
// TypeError: f Π½Π΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Car
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΠΎΠ± ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠ»Π°ΡΡ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π²ΠΊΠ°Π·Π°ΡΠΈ ΠΉΠΎΠ³ΠΎ ΡΠΊ ΡΡΠ½ΠΊΡΡΡ. Π Π΄ΡΠΆΠΊΠ°Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ°Π·Π°ΡΠΈ ΠΉΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΡΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ Π²ΠΈΡΠΎΠ±Π½ΠΈΠΊΠ°, ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΡΠΊ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π°Π²ΡΠΎΠΌΠΎΠ±ΡΠ»Ρ. Π©ΠΎΠ± Π·ΡΠΎΠ±ΠΈΡΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΡΡΡ ΡΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π°ΡΡΡΠΏΠ½ΠΈΠΌ ΡΠΈΠ½ΠΎΠΌ:
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
Π’Π΅ΠΏΠ΅Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ ΠΎΠ±'ΡΠΊΡΠΈ ΠΊΠ»Π°ΡΡΡ Car, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ mycar
:
var mycar = new Car('Eagle', 'Talon TSi', 1993);
ΠΠ±ΡΡΡΠ½ΠΊΠ°
Π‘ΠΏΡΠΎΠ±Π° ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΈ Π· ΡΡΠ½ΠΊΡΡΡ Π΅ΠΊΠ·Π΅ΠΌΠ»ΡΡ ΠΊΠ»Π°ΡΡ, Π· Π²ΠΈΠΊΠΎΠ½Π°Π½Π½ΡΠΌ ΠΉΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΠ΄ ΡΠ°Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΡΠΊΠΎΡΡΡ ΡΡΠ½ΠΊΡΡΡ(Π· Ρ ΠΎΠ΄Ρ), Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΈΠΏΡ new Promise(...).
Π¦Π΅ Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΡ(Π²ΠΈΠΊΠ»ΠΈΠΊ ΠΊΠΎΠ½ΠΊΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡ Promise ΠΏΠΎΠ·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ), Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΠΊΠΎΠ΄Ρ Π±ΡΠ΄Π΅ Π·ΡΠΏΠΈΠ½Π΅Π½ΠΎ Π· ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΡ TypeError: this is not a constructor
Π²ΠΈΠΉΠ½ΡΡΠΎΠΊ:
return new Promise.resolve(true);
ΠΠ°ΠΌΡΡΡΡ ΡΡΠΎΠ³ΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉ ΡΡΠ°ΡΠΈΡΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ»Π°ΡΡ Promise.resolve() ΡΠΈ Promise.reject() static methods:
// Π¦Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, Π°Π»Π΅ Π΄ΡΠΆΠ΅ Π½Π΅ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
return new Promise((resolve, reject) => { resolve(true); })
// ΠΠ°ΠΌΡΡΡΡ ΡΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ»Π°ΡΡ Promise:
return Promise.resolve(true);
return Promise.reject(false);