#javascript
Нигде не нашел однозначного ответа на этот вопрос. В коде ниже что будет находиться в copyFunc: ссылка, или объект функции? Сколько экземпляров функции будет находиться в памяти после выполнения кода? let myFunk = function () { /* func body */ }; let copyFunk = myFunk;
Ответы
Ответ 1
По значению передаются только примитивные типы. Т.е. string, number, boolean, null, undefined и symbol. Все остальные, в том числе function, передаются по ссылке. Для не примитивных типов в переменных всегда хранятся ссылки на них. Часто для краткости говорят «в переменной лежит объект» когда имеют в виду, что в переменной лежит ссылка. В вашем примере myFunk и copyFunk это две абсолютно одинаковых ссылки на один экземпляр функции.
Комментариев нет:
Отправить комментарий