Sobes.tech
Middle

Skąd pochodzą metody (np. .toString() itp.) w typach danych prostych?

sobes.tech AI

Odpowiedź od AI

Typy danych podstawowych w JavaScript (łańcuchy, liczby, wartości logiczne, Symbol, BigInt, null, undefined) tak naprawdę nie mają metod. Jednak gdy próbujemy wywołać metodę na wartości podstawowej, JavaScript tymczasowo opakowuje ją w odpowiedni obiekt opakowujący (String, Number, Boolean, Symbol, BigInt).

Na przykład, wywołując .toString() na ciągu 'hello', JavaScript tworzy tymczasowy obiekt new String('hello'), wywołuje metodę toString() tego obiektu, a następnie niszczy ten tymczasowy obiekt. Mechanizm ten nazywa się autoboxing lub automatyczne pakowanie.

Typy danych null i undefined nie mają odpowiadających im obiektów opakowujących i dlatego nie mogą mieć metod. Próba wywołania metody na null lub undefined spowoduje błąd TypeError.