Pamiętam, że otrzymywałem ten błąd dużo wcześniej. Dzisiaj chciałem go pokazać znajomemu, który nie jest zaznajomiony z Javascriptem. Zamiast tego Chrome i Safari dały mi coś takiego:

> const o = {};
< undefined
> o.doge()
< TypeError: o.doge is not a function (In 'o.doge()',' 'o.doge' is undefined)

Chrome i Firefox również wydają się być przyjazne dla użytkownika.

Jak mogę otrzymać oryginalny błąd bez tego pomocnego komunikatu?

-2
Alexey 8 marzec 2020, 00:16

2 odpowiedzi

Najlepsza odpowiedź

Nigdy nie dostaniesz tego błędu w nowoczesnej przeglądarce; błąd pochodzi z samego silnika js, a nie z przeglądarki; a jeśli nie ma innych niż to Type Error, nowoczesne silniki zwrócą bardziej przyjazny dla programistów błąd, stosując (podobne) /(w+)/ wyrażenie regularne do tego, co kiedykolwiek wpisano wcześniej () i umieszczając je w komunikat o błędzie sprawdź:

v8 (chrome) szablony wiadomości, dzięki którym ciąg błędu (wiersz 51, 52):

T(CalledNonCallable, "% is not a function")   

I szablony wiadomości SpiderMoneky (mozilla) (w linii 51, 54):

MSG_DEF(JSMSG_NOT_FUNCTION,            1, JSEXN_TYPEERR, "{0} is not a function")

niepołączalny przypadek testowy w wersji 8 i przypadek testowy.


Zatem jedynym sposobem na wyświetlenie komunikatu o błędzie undefined is not a function w nowoczesnej przeglądarce jest wykonanie undefined() :)

undefined()
0
Mhmdrz_A 7 marzec 2020, 22:46

Możesz po prostu spróbować znaleźć i pobrać starszą wersję przeglądarki, która zarejestrowała błąd original. (jeśli ta wersja jest nadal dostępna publicznie).

0
CVG 7 marzec 2020, 21:23