Почему:
var one = 0;
function inputOne(){
return one = prompt('Input one');
}
возвращает без проблем, а если передавать переменную как аргумент:
var one = 0;
function input(e){
return e = prompt('Input one');
}
то она только локально внутри функции меняется? В чем разница вызовов?
Разница в том что в первом случае var one = 0;
у вас определена глобально (во внешнем коде). А значит доступна во всех функциях и во вне их.
А e
у вас чисто локальная переменная, во вне она не объявлена, значит и недоступна во вне.
Во втором случае e это ссылка, даже если туда передать one то ссылка e будет указывать на one. И если она задаётся в промпт, то это просто ссылка e будет указывать на новое значение, а one при этом не затронется.
То есть в результате prompt создастся новый объект и ссылка e будет указывать на него, в то время как ссылка one из внешнего кода куда ссылалась туда и продолжила ссылаться, на старый объект.
Зато если вы туда передадите сложный объект, то уже внутри него замены произойдут
var one = {one:0};
function input(e){
return e.one = prompt('Input one');
}
input(one);
console.log(one);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Доброго времениКак мера обхода Adblock подумал, а можно ли как-то попробовать подгружать рекламу гугла, спустя пару секунд, например ?
Решил создать текстовый редактор на админке для сайтаНашел что популярная для React библиотека Draft
Хочу сделать оповещение пользователей с подтверждением о прочтенииПридумал только такой механизм: