JavaScript Обекти като Параметри
Обектите, за разлика от примитивите, се предават по референция. Това означава, че промяната на обект вътре във функция ще доведе до това, че той ще се промени и извън функцията. Вижте примера:
javascriptfunction func(arr) {
arr[0] = '!';
}
let arr = [1, 2, 3];
func(arr);
console.log(arr); // ще изведе ['!', 2, 3]
Задание 1
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(obj) {
obj.a = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj);
console.log(obj);
Задание 2
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(arg) {
arg = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Задание 3
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(obj) {
obj = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Задание 4
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(arr) {
arr.splice(1, 1);
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);
Задание 5
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(arr) {
arr.slice(1, 1);
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);
Задание 6
Определете, без да стартирате кода, какво ще се изведе в конзолата:
javascriptfunction func(arr) {
let newArr = arr;
newArr[0] = '!';
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);