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

124
25 апреля 2021, 18:30

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

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

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

По значению передаются только примитивные типы. Т.е. string, number, boolean, null, undefined и symbol. Все остальные, в том числе function, передаются по ссылке.

Для не примитивных типов в переменных всегда хранятся ссылки на них. Часто для краткости говорят «в переменной лежит объект» когда имеют в виду, что в переменной лежит ссылка.

В вашем примере myFunk и copyFunk это две абсолютно одинаковых ссылки на один экземпляр функции.

READ ALSO
Как открыть нужный слайд в owl-carousel2 по клику?

Как открыть нужный слайд в owl-carousel2 по клику?

При клике по ссылке мне нужно открыть в модальном окне (на materialize-css) определенный слайдПытаюсь сделать как здесь, но открывается все равно...

81
Как я могу выполнить QSqlRelationalTableModel::setFilter с оператором 'WHERE'?

Как я могу выполнить QSqlRelationalTableModel::setFilter с оператором 'WHERE'?

Как я могу выполнить QSqlRelationalTableModel::setFilter с оператором 'WHERE' ??? Для примера:

82
Реализация shrink_to_fit для множества векторов

Реализация shrink_to_fit для множества векторов

Есть шаблон класса, хранящий множество векторов:

79
Как в WM_CREATE получить имя, заданное окну при создании? [закрыт]

Как в WM_CREATE получить имя, заданное окну при создании? [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

132