هل تمرر القيم بالمرجع أم بالقيمة في JavaScript؟

الجواب هو، فإنه يعتمد!

يتم تمرير الأنواع الأولية بالقيمة.

يتم تمرير الكائنات عن طريق المرجع.

الأنواع الأولية هي الأرقام والسلاسل والقيمة المنطقية والخالية وغير المعرفة والرموز

كل شيء ليس من النوع البدائي هوموضوع. المصفوفات هي كائنات. الوظائف هي كائنات.

عندما تمرر رقمًا إلى دالة ، يتم نسخه في الوظيفة:

const increment = num => {
  num = num + 1
}

const num = 2 increment(num)

console.log(num) //2

إذا قمت بتمرير كائن ، فإنه يتم تمريره من خلال المرجع ، لذلك إذا قمت بتعديل إحدى خصائصه ، فسيتم تعديل الكائن الأصلي أيضًا:

const increment = num => {
  num.value = num.value + 1
}

const num = { value: 2 }

increment(num)

console.log(num.value) //3


المزيد من دروس js: