почему функция внутри функции = undefined
Здравствуйте!
Подскажите пожалуйста, почему не работает как я хочу function func2(n) { n = 1; } function func1() { var n; func2(n); console.log(n); } func1(); |
jay-S,
бред какой то написан |
Мне нужно чтобы внутри функции сработала другая функция
и нужно получить значение |
jay-S,
вы вызываете func2 и передаете в нее undefined. она выполнилась, return в ней нет, вернула тоже undefined которой интерпретатор тут же "забыл". в консоль вывелась объявленная var n; в func1. Ваш артхаос заставляет улыбнуться =) |
function func2() { return 1; } function func1() { console.log(func2()); } func1(); наверное так, но я не уверен |
Цитата:
|
примитивы передаются значением (создается копия объекта), объекты передаются ссылкой (передается исходный объект)
let n = 2 let o = { n: 2 } function changeN(n) { // здесь копия (новый экземпляр) n n = 3 // замена копии } changeN(n) // здесь n = 2 function changeNObject(o) { // здесь ссылка на объект "o" o.n = 3 // заменим n внутри объекта } changeNObject(o) console.log(n, o) // 2, {n: 3} |
Цитата:
function func2(n) { n = {a:1}; } function func1() { var n = {a:0}; func2(n); alert(n.a); } func1(); в некоторых других языках (делфи, с#, с++) можно передать параметр именно по ссылке, так что код из примера выведет 1 |
Благодарю вас всех за разъяснение!
С наступающим вас! |
Часовой пояс GMT +3, время: 23:40. |