почему функция внутри функции = 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, время: 01:13. |