Middle
Iš kur kilęs metodai (pvz., .toString() ir kt.) pirminiuose duomenų tipuose?
sobes.tech AI
Atsakymas iš AI
JavaScript pagrindiniai duomenų tipai (eilutės, skaičiai, boolean reikšmės, Symbol, BigInt, null, undefined) iš tikrųjų neturi metodų. Tačiau, kai bandome iškviesti metodą ant pirminės reikšmės, JavaScript laikinai ją apvynioja atitinkamu apvalkalu (String, Number, Boolean, Symbol, BigInt).
Pavyzdžiui, kviečiant .toString() ant eilutės 'hello', JavaScript sukuria laikinas objektą new String('hello'), iškviečia šio objekto toString() metodą ir tada sunaikina tą laikina objektą. Šis mechanizmas vadinamas autoboxing arba automatinis įpakavimas.
null ir undefined duomenų tipai neturi atitinkamų apvalkalo objektų ir todėl negali turėti metodų. Bandymas iškviesti metodą null arba undefined sukels klaidą TypeError.