Ponieważ ciągi znaków w języku JavaScript są typami podstawowymi, czy przekazanie ciągu znaków do funkcji tworzy jego lokalną kopię? Zastanawiam się nad tym, ponieważ nie można modyfikować ciągów po ich utworzeniu, więc wydaje się nielogiczne, że maszyny wirtualne JavaScript nie przekazałyby wewnętrznego adresu łańcucha tylko do tej funkcji.Czy przekazywanie ciągu znaków do funkcji kopiuje ją według wartości lub przekazuje przez odniesienie?
Jeśli ktoś mi powie, że nie powinienem się o to martwić (często zdarza się to podczas rozmowy z twórcami stron), pracuję nad grami HTML5, a zbieranie śmieci jest poważnym problemem, więc naprawdę potrzebuję wiedzieć.
Może głupie pytanie, ale dlaczego po prostu tego nie spróbujesz? – Uby
Każdy typ pierwotny jest przekazywany według wartości. Zobacz http://snook.ca/archives/javascript/javascript_pass –
@silentboy: Wartości ciągów mogą być traktowane jak prymitywy, ale ja * gwarantuję * tobie, ciąg nie jest przekazywany przez wartość. –