2014-01-15 9 views
0

Я немного запутался об этой теме , напримерТип Справочные данные сравниваются с примитивным типом данных в JavaScript

var person = "Kobe"; 
var another = person; 

является переменной другой создать еще одну копию или просто ссылаться на человека? При этом, если я перейду на кого-то другого, изменится и другое?

Сравнить с

var person = {name: "Kobe"}; 
var another = person; 

Спасибо за помощь

+1

возможно дубликат [Является ли JavaScript pass-by-reference или pass-by-value language?] (http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language) – tkone

+0

thx tkone за помощь –

+0

Возможный дубликат [Javascript by referenc e vs. by value] (http://stackoverflow.com/questions/6605640/javascript-by-reference-vs-by-value) – Bergi

ответ

1

Строки (также числа и булевы) копируются на назначение в JS, объект и функции ссылки акций

+0

Возможно, я ошибаюсь, но, как я помню, строки ведут себя по-другому «человек» и 'another' ссылаются на одно и то же место в куче, прежде чем они сохраняют одно и то же значение, но если вы измените значение, одно из них будет создано новое местоположение в куче. – Givi

+0

Я не совсем уверен в процессе внутреннего JS-процесса, но с практической точки зрения важно то, что строки копируются при назначении, независимо от того, что происходит в памяти. Итак, если 'person =" Mike "', то 'другой' остается' Kobe' и visaversa; – lexasss

Смежные вопросы