TypeError: Object doesn't support this action (Edge) 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, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð±Ð¾Ð»ÑÑе инÑоÑмаÑии о Ñом, ÑÑо Ñакое конÑÑÑÑкÑоÑ.
СÑÑеÑÑвÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво глобалÑнÑÑ
обÑекÑов, ÑакиÑ
как String
или Array
, коÑоÑÑе можно поÑÑÑоиÑÑ Ñ Ð¸ÑполÑзованием new
. Ðднако, некоÑоÑÑе глобалÑнÑе обÑекÑÑ - нелÑзÑ, Ñ.к. иÑ
ÑвойÑÑва и меÑÐ¾Ð´Ñ ÑÑаÑиÑнÑ. СледÑÑÑие ÑÑандаÑÑнÑе вÑÑÑоеннÑе обÑекÑÑ JavaScript - не конÑÑÑÑкÑоÑÑ: Math
, JSON
, Symbol
, Reflect
, Intl
, SIMD
, Atomics
.
ФÑнкÑии-генеÑаÑоÑÑ Ñакже не могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ ÐºÐ°Ðº конÑÑÑÑкÑоÑÑ.
ÐÑимеÑÑ ÐепÑавилÑное иÑполÑзованиеvar Car = 1;
new Car();
// TypeError: Car is not a constructor
new Math();
// TypeError: Math is not a constructor
new Symbol();
// TypeError: Symbol is not a constructor
function* f() {}
var obj = new f();
// TypeError: f is not a constructor
ÐонÑÑÑÑкÑÐ¾Ñ "car" (авÑомобилÑ)
ÐÑедÑÑавÑÑе, ÑÑо Ð²Ñ Ñ
оÑиÑе ÑоздаÑÑ Ñип обÑекÑа Ð´Ð»Ñ Ð°Ð²Ñомобилей. ÐÑ Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ ÑÑÐ¾Ñ Ñип обÑекÑов назÑвалÑÑ car
, и Ð²Ñ Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ Ð±Ñли ÑвойÑÑва Ð´Ð»Ñ Ð¿ÑоизводиÑелÑ, модели и года вÑпÑÑка. ЧÑÐ¾Ð±Ñ ÑделаÑÑ ÑÑо, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð½Ð°Ð¿Ð¸ÑаÑÑ ÑледÑÑÑÑÑ ÑÑнкÑиÑ:
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
ТепеÑÑ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑоздаÑÑ Ð¾Ð±ÑекÑ, коÑоÑÑй назÑваеÑÑÑ mycar
(мой авÑомобилÑ) ÑледÑÑÑим обÑазом:
var mycar = new Car("Ðада", "СамаÑа", 1993);
Ð ÐÑомиÑаÑ
Ð ÑлÑÑае, когда возвÑаÑаеÑÑÑ Ð½ÐµÐ·Ð°Ð¼ÐµÐ´Ð»Ð¸ÑелÑно ÑазÑеÑÑннÑй или незамедлиÑелÑно оÑклонÑннÑй пÑомиÑ, вам не нÑжно ÑоздаваÑÑ Ð½Ð¾Ð²Ñй пÑÐ¾Ð¼Ð¸Ñ new Promise(...) и ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼.
ÐÑо непÑавилÑно (конÑÑÑÑкÑÐ¾Ñ Promise вÑзÑваеÑÑÑ Ð½ÐµÐ¿ÑавилÑно) и бÑÐ´ÐµÑ Ð²ÑзÑваÑÑ Ð¸ÑклÑÑение TypeError: this is not a constructor
:
return new Promise.resolve(true);
ÐмеÑÑо ÑÑого иÑполÑзÑйÑе ÑÑаÑиÑеÑкие меÑÐ¾Ð´Ñ - Promise.resolve() или Promise.reject() :
// ÐÑо допÑÑÑимо, но ÑлиÑком длинно, в ÑÑом Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи:
return new Promise((resolve, reject) => {
resolve(true);
});
// ÐмеÑÑо ÑÑого, возвÑаÑайÑе ÑÑаÑиÑеÑкий меÑод:
return Promise.resolve(true);
return Promise.reject(false);
СмоÑÑиÑе Ñакже
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