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:
function func(arr) {
arr[0] = '!';
}
let arr = [1, 2, 3];
func(arr);
console.log(arr); // skriver ut ['!', 2, 3]
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(obj) {
obj.a = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj);
console.log(obj);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(arg) {
arg = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(obj) {
obj = '!';
}
let obj = {a: 1, b: 2, c: 3};
func(obj.a);
console.log(obj);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(arr) {
arr.splice(1, 1);
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(arr) {
arr.slice(1, 1);
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(arr) {
let newArr = arr;
newArr[0] = '!';
}
let arr = [1, 2, 3];
func(arr);
console.log(arr);