วัตถุ JavaScript เป็นค่าผสมซึ่งเป็นชุดของแอตทริบิวต์หรือค่าที่มีชื่อ มันอ้างอิงค่าแอตทริบิวต์ผ่านสัญลักษณ์ "." เมื่อค่าแอตทริบิวต์เป็นฟังก์ชันเราเรียกมันว่าวิธีการ เราเห็นว่าสตริงยังมีคุณสมบัติและวิธีการ:
การคัดลอกรหัสมีดังนี้:
var s = "สวัสดีโลก!";
var word = s.substring (s.indexof ("")+1, s.length);
เนื่องจากสตริงไม่ใช่วัตถุทำไมจึงมีคุณลักษณะ? ตราบใดที่แอตทริบิวต์ของสตริงถูกอ้างอิง JavaScript จะแปลงค่าสตริงเป็นวัตถุโดยเรียกตัวสร้างของสตริงใหม่ วัตถุนี้สืบทอดวิธีการสตริงและใช้เพื่อประมวลผลการอ้างอิงไปยังแอตทริบิวต์ เมื่อการอ้างอิงแอตทริบิวต์เสร็จสมบูรณ์วัตถุที่สร้างขึ้นใหม่จะถูกทำลาย (อันที่จริงวัตถุนี้จะไม่ถูกสร้างขึ้นในการใช้งาน แต่กระบวนการทั้งหมดมีลักษณะเช่นนี้)
เช่นสตริงตัวเลขและค่าบูลีนยังมีวิธีการของตัวเอง: สร้างวัตถุชั่วคราวผ่านหมายเลข () และตัวสร้างบูลีน () และการเรียกใช้วิธีการเหล่านี้มาจากวัตถุชั่วคราวนี้ วัตถุชั่วคราวนี้เรียกว่าวัตถุห่อหุ้ม
สังเกต:
การคัดลอกรหัสมีดังนี้:
var s = "ทดสอบ"; // ประกาศสตริง
s.len = 4; // ตั้งค่าคุณสมบัติ LEN สำหรับมัน
var t = s.len; // สอบถามคุณสมบัตินี้
ในเวลานี้เมื่อเราส่งออก t เราควรไม่ได้กำหนด บรรทัดที่สองของรหัสสร้างวัตถุสตริงชั่วคราวและกำหนดค่าแอตทริบิวต์ LEN เป็น 4 จากนั้นทำลายวัตถุ รหัสบรรทัดที่สามตั้งค่าแอตทริบิวต์ใหม่ผ่านค่าสตริงต้นฉบับ S และพยายามอ่านแอตทริบิวต์ LEN แอตทริบิวต์นี้ไม่มีอยู่จริงดังนั้นค่าเมื่อ t คือเอาต์พุตไม่ได้กำหนด
รหัสนี้แสดงให้เห็นว่าเมื่ออ่านค่าแอตทริบิวต์ (หรือวิธีการ) ของตัวเลขสตริงและค่าบูลีนมันจะทำงานเหมือนวัตถุ แต่เมื่อพยายามกำหนดค่าให้กับแอตทริบิวต์ของมันการดำเนินการนี้จะถูกละเว้น: การดัดแปลงเกิดขึ้นบนวัตถุชั่วคราวเท่านั้น
วัตถุชั่วคราวที่สร้างขึ้นเมื่อเข้าถึงคุณสมบัติของสตริงหมายเลขหรือบูลีนเรียกว่าวัตถุห่อหุ้ม มันถูกใช้เป็นครั้งคราวเพื่อแยกความแตกต่างระหว่างค่าสตริงและวัตถุสตริงวัตถุตัวเลขค่าบูลีนและวัตถุบูลีน