2016-02-18 3 views
21

Теперь, когда я работал над Angular2 почти 3 месяца, я столкнулся с несколькими сценариями, которые заставляли меня задаваться вопросом, как это происходит?Передать значение и передать по ссылке в Javascript

В случае специального ключевого слова this очевидно, что он передает ссылку или экземпляр соответствующего DOM Object или Class для примера.

Но тогда есть еще одна вещь, называемая ControlGroup, которая также делает то же самое, когда она назначается другой переменной. И обе переменные имеют доступ к тому же экземпляру, что и ControlGroup.

ответ

31

Объекты и массивы передаются по ссылке. Примитивные значения, такие как number, string, boolean, передаются по значению. Ссылка на объект также является примитивным типом и передается по значению, как и другие примитивные типы, но объект, к которому он относится, по-прежнему передается по ссылке.

Это не Угловой или TypeScript специфический, как работает Javascript.

+3

Подробнее об этом здесь - возможно, он передаёт ссылку по значению http://stackoverflow.com/q/518000/314291 – StuartLC

+1

Уверен, что ссылка является примитивным значением, а когда она передается как значение, но что ссылка ссылается поэтому передается по ссылке. Я уточню свой ответ. –

+0

Никогда не слышал об этом. Можете ли вы воспроизвести в Plunker? –

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