Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

JavaScript: функция передаётся по ссылке или по значению?

#javascript


Нигде не нашел однозначного ответа на этот вопрос.

В коде ниже что будет находиться в copyFunc: ссылка, или объект функции?
Сколько экземпляров функции будет находиться в памяти после выполнения кода?

let myFunk = function () { /* func body */ };
let copyFunk = myFunk;

    


Ответы

Ответ 1



По значению передаются только примитивные типы. Т.е. string, number, boolean, null, undefined и symbol. Все остальные, в том числе function, передаются по ссылке. Для не примитивных типов в переменных всегда хранятся ссылки на них. Часто для краткости говорят «в переменной лежит объект» когда имеют в виду, что в переменной лежит ссылка. В вашем примере myFunk и copyFunk это две абсолютно одинаковых ссылки на один экземпляр функции.

Комментариев нет:

Отправить комментарий