JavaScript-objektparametrar

Objekt, till skillnad från primitiver, skickas genom referens. Det betyder att om man ändrar ett objekt inuti en funktion kommer det att leda till att det ändras även utanför funktionen. Se exemplet:

javascriptfunction func(arr) {
  arr[0] = '!';
}

let arr = [1, 2, 3];
func(arr);
console.log(arr); // skriver ut ['!', 2, 3]
Задание 1

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(obj) {
  obj.a = '!';
}

let obj = {a: 1, b: 2, c: 3};
func(obj);
console.log(obj);
Задание 2

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(arg) {
  arg = '!';
}

let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Задание 3

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(obj) {
  obj = '!';
}

let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Задание 4

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(arr) {
  arr.splice(1, 1);
}

let arr = [1, 2, 3];
func(arr);
console.log(arr);
Задание 5

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(arr) {
  arr.slice(1, 1);
}

let arr = [1, 2, 3];
func(arr);
console.log(arr);
Задание 6

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(arr) {
  let newArr = arr;
  newArr[0] = '!';
}

let arr = [1, 2, 3];
func(arr);
console.log(arr);