Primitive Type คืออะไร ?
คือเมื่อสร้างตัวแปรใหม่โดยอ้างอิงจากตัวแปรเก่า ค่าที่ได้จะเป็นการคัดลอก
let num1 = 1
let num2 = num1
console.log(num1,num2)//จะได้ผลลัพธ์เป็น 1 ทั้งสองตัวแปร
แต่ถ้าเปลี่ยนเป็น
let num1 = 1
let num2 = num1
num1 = 3
num2 = 4
console.log(num1)//จะได้ผลลัพธ์เป็น 3
console.log(num2)//จะได้ผลลัพธ์เป็น 4
เพราะตัวแปรจะใช้ค่าของแต่ละตัวโดยไม่เกี่ยวข้องกันถึงแม้ num2 จะอ้างอิงมาจาก num1 ก็ตาม
Reference Type คืออะไร ?
คือเป็นการสร้างตัวแปรแบบอ้างอิง โดยที่เมื่อตัวแปรไหนเปลี่ยนตัวแปรอื่นก็จะเปลี่ยนตามด้วย จะใช้กับทั้ง Array และ Object
const person1 = {name: "A"}
const person2 = person1
person2.name = "B"
console.log(person1)//จะได้ผลลัพธ์เป็น B
ทั้ง person1 และ person2 จะใช้ค่าเดียวกัน
ถ้าต้องการคัดลอกเฉพาะค่าใน Object ให้สามารถใช้งานแยกออกจากกันสามารถทำได้โดยใช้ Spread Operator
const person1 = {name: "A"}
const person2 = {...person1}
person2.name = "B"
console.log(person1)//จะได้ผลลัพธ์เป็น A
Top comments (2)
Thank you for sharing
Thank you