Middle
Odkud se berou metody (například .toString() atd.) u primitivních datových typů?
sobes.tech AI
Odpověď od AI
Primární datové typy v JavaScriptu (řetězce, čísla, boolean hodnoty, Symbol, BigInt, null, undefined) ve skutečnosti nem mají metody. Nicméně, když se pokusíme zavolat metodu na primitivní hodnotě, JavaScript ji dočasně zabalí do odpovídajícího obalového objektu (String, Number, Boolean, Symbol, BigInt).
Například při volání .toString() na řetězci 'hello', JavaScript vytvoří dočasný objekt new String('hello'), zavolá metodu toString() tohoto objektu a poté dočasný objekt zničí. Tento mechanismus se nazývá autoboxing nebo automatické balení.
Typy dat null a undefined nemají odpovídající obalové objekty a proto nemohou mít metody. Pokus o volání metody na null nebo undefined povede k chybě TypeError.