ใน JavaScript, String, Number และ Boolean เป็นประเภทพื้นฐานดั้งเดิมทั้งหมดนั่นคือสตริงค่าตัวเลขและค่าบูลีนไม่มีอยู่ในรูปแบบของวัตถุ อย่างไรก็ตามเนื่องจากต้องดำเนินการแบบดั้งเดิมทั้งสามประเภท JavaScript จะห่อหุ้มค่าสามประเภทเหล่านี้โดยอัตโนมัติเพื่อให้พวกเขามีคุณสมบัติและวิธีการเป็นวัตถุ การใช้สตริงเป็นตัวอย่างกระบวนการห่อหุ้มนี้มีดังนี้:
1. เมื่อ JavaScript พบการเข้าถึงคุณสมบัติหรือการเรียกเมธอดไปยังค่าสตริงใหม่สตริงใหม่ (ค่าสตริง) จะถูกเรียกให้ห่อหุ้มสตริงโดยอัตโนมัติลงในวัตถุสตริง
2. JavaScript จะเข้าถึงคุณสมบัติหรือวิธีการของวัตถุที่สร้างขึ้นใหม่และส่งคืนผลลัพธ์ที่สอดคล้องกัน
3. หลังจากการเข้าถึงคุณสมบัติหรือการโทรเสร็จสิ้น JavaScript จะทำลายวัตถุที่สร้างขึ้นใหม่ทันที
ตัวอย่างเช่นไม่มีความหมายที่จะเขียนแอตทริบิวต์ไปยังสตริงวัตถุที่สร้างขึ้นโดย JavaScript โดยอัตโนมัติเนื่องจากวัตถุที่สร้างขึ้นไม่มีอยู่อีกต่อไปหลังจากคำสั่ง Write เสร็จสิ้น:
การคัดลอกรหัสมีดังนี้:
var s = "ทดสอบ";
s.length = 9;
console.log (s.length); // ยัง 4
S.NewVariable = 9;
console.log (s.newvariable); // undefined
console.log (s === "ทดสอบ"); // true
เป็นที่น่าสังเกตว่าตัวแปร S ในรหัสข้างต้นแสดงถึงสตริงดั้งเดิมเสมอ วัตถุสตริงที่สร้างขึ้นโดยอัตโนมัติโดย JavaScript มีอยู่ระหว่างการดำเนินการของการดำเนินการ s.length หรือ s.newvariable สามารถตรวจสอบได้จากรหัสบรรทัดสุดท้ายในการทดลองข้างต้น
นอกเหนือจากการห่อหุ้มค่าดั้งเดิมโดยอัตโนมัตินักพัฒนายังสามารถเลือกที่จะดำเนินการตามกระบวนการที่สอดคล้องกันด้วยตนเอง ซึ่งแตกต่างจากการห่อหุ้มอัตโนมัติวัตถุที่ได้จากการห่อหุ้มด้วยตนเองจะไม่ถูกทำลายทันทีดังนั้นการดำเนินการเขียนทรัพย์สินที่ใช้สำหรับวัตถุที่ห่อหุ้มด้วยตนเองจึงสมเหตุสมผล:
การคัดลอกรหัสมีดังนี้:
var t = สตริงใหม่ ("ทดสอบ");
t.length = 9;
console.log (t.length); // ยัง 4, เป็นแอตทริบิวต์ความยาวถูกอ่านเท่านั้น
T.NewVariable = 9;
console.log (T.NewVariable); // 9
console.log (t == "test"); // true
console.log (t === "ทดสอบ"); // false