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