Javascript передача параметров функцию ссылке
Строки, числа, флаги передаются в функцию по значению.
То есть при передаче параметра в функцию если параметр (строка, число, флаг) то для такого параметра создается копия и внутри функции мы работаем с копией параметра.
При выходе из функции:
параметр не меняет значение
копия параметра меняет значение но разрушается при выходе из функции
// объявляем функцию
function SetValue(x)
<
x = 10;
>
// создаем переменную
var a = 20;
// вызываем функцию
SetValue(a);
alert (a); // увидим на экране 20
Объекты и массивы передаются в функцию по ссылке.
То есть при передаче параметра в функцию если параметр (объект, массив) то такой параметр передается внутрь функции и мы работаем с этим параметром.
При выходе из функции:
параметр меняет значение
// объявляем функцию
function ShowMyText(x)
<
x.age = 10;
>
// вызываем функцию
ShowMyText(a);
alert (a.age); // увидим на экране 10 то есть функция поменяла age
// объявляем функцию
function ShowMyText(x)
<
x = ;
>
// вызываем функцию
ShowMyText(a);
alert (a.age); // увидим на экране 20 функция не поменяла объект
Объяснение: В функцию мы передаем объект
Внутри функции ShowMyText мы меняем объект x = ;
После выхода из функции ссылка на новый объект потерялась (потому что x указывает на новый объект)
← Предыдущая тема
Переменные внутри функции (время жизни переменных внутри функции) JavaScript | стандарт ES5
Следующая тема →
Как узнать . существует ли функция по названию В JavaScript? Пример: typeof calcSum == «function» | стандарт ES5