วันพฤหัสบดีที่ 17 กรกฎาคม พ.ศ. 2557

ภาษา JavaScript ฉบับผู้เริ่มต้น part 6-2


: ภาพอันเปลือยเปล่าของน้อง Primitive Type และ Reference Type

>> ภาพดังที่เห็นนี้อาจไม่ถูกต้องตามโครงสร้างของหน่วยความจำไปเสียทุกอย่าง แต่เพื่อให้เพื่อนๆได้เห็นว่าหน่วยความจำที่บราวเซอร์ใช้นั้น ใช้จัดเก็บตัวแปรที่มีไทป์ประเภท primitive type ต่างจากประเภท reference type อย่างไร

>> ด้านซ้ายคือพื้นที่ที่เกิดการจองหน่วยความจำของตัวแปรที่มีไทป์ประเภท primitive type เมื่อเราประกาศตัวแปร bookPrice กับ bookName จากภาพเราสามารถอ้างอิงทั้งสองชื่อนี้เพื่อเข้าถึงค่า 25 และ "JS" ตามลำดับ

>> ด้านขวาคือพื้นที่ที่เกิดการจองหน่วยความจำของตัวแปรที่มีไทป์ประเภท reference type เมื่อเราสร้างออบเจ็กต์ (คำสั่ง new ใช้สร้างออบเจ็กต์ ออบเจ็กต์เป็นอย่างไรนั้น ไว้ค่อยคุยกันใน part ต่อๆไปเน๊อะ) จะเกิดค่าค่าหนึ่งขึ้นมา (ระบบจะจัดสรรให้เองโดยอัตโนมัติ) สมมติว่าเป็นค่า @ab1764ac ค่าดังกล่าวนี้จะอ้างอิงถึงหน่วยความจำอีกแห่งหนึ่ง เสมือนว่าเราได้หนังสือมาหนึ่งเล่มจริงๆ หนังสือที่ว่านี้อาจมีความสัมพันธ์กับตัวแปร bookPrice และ bookName ซึ่งเป็นราคาและชื่อหนังสือของมันเองเลย (คนละตัวแปรกับฝั่ง primitive type นะจ๊ะ) ครั้นเราสร้างออบเจ็กต์โดยการ new อีก ก็จะได้หนังสือเล่มใหม่ออกมาอีก (งง ก็ไม่ต้องสนใจ เดี๋ยว part ต่อๆไปจะพาทำเองครับ) โดยแต่ละเล่มที่ได้ใหม่นั้นก็จะมีราคาและชื่อหนังสือเป็นของมันเอง ของใครของมัน

>> เพื่อนๆคงทราบว่าเราเขียนโปรแกรมล้อเลียนความจริง ดังนั้นจะพบเจอโค้ดโปรแกรมลักษณะไทป์ประเภท reference type อยู่บ่อยๆ ซึ่งพื้นฐานของมัน (ที่สุดของที่สุด) ก็คือการห่อหุ้มไทป์ประเภท primitive type นี่แหละครับ

>> หากต้องการเข้าใจให้ละเอียดกว่านี้ อยากรู้ๆ ผมแนะนำลิงค์นี้
http://www.youtube.com/watch?v=mh-hPzDfb_Q

>> สำหรับ part หน้า เราจะคุยกันเรื่อง Expressions จับตัวแปรและค่ามาบวกลบคูณหารกัน ทำโปรแกรมคำนวณค่าเล็กๆสนุกๆกัน ไว้เจอกันนะ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น