ตัวสร้างเป็นวิธีพิเศษสำหรับการเริ่มต้นวัตถุที่สร้างขึ้นใหม่หากหน่วยความจำได้รับการจัดสรรให้ ตัวสร้างวัตถุใช้เพื่อสร้างวัตถุประเภทเฉพาะ เตรียมวัตถุสำหรับใช้งาน เพื่อนร่วมงานได้รับตัวสร้างสามารถใช้พารามิเตอร์เพื่อตั้งค่าคุณสมบัติของสมาชิกและค่าเมธอดเมื่อวัตถุถูกสร้างขึ้นเป็นครั้งแรก
การสร้างวัตถุ
สร้างสรรค์วัตถุใหม่โดยปกติจะมีสองวิธีในการทำใน JavaScript:
1. วิธีการวัดแบบตัวต่อตัว
var newObj = {};
2. วิธีการสร้างแบบง่าย ๆ
var newObj = วัตถุใหม่ ();
เมื่อตัวสร้างวัตถุสร้างการห่อหุ้มวัตถุสำหรับค่าเฉพาะหรือเมื่อไม่มีค่าผ่านมันจะสร้างวัตถุเคนและส่งคืน
วิธีการที่กำหนดวัตถุ:
1. วิธี "จุด"
// ตั้งค่าแอตทริบิวต์ newobj.name = 'lanfeng'; // รับค่า var user = newobj.name;
1. วิธีการยึด
// ตั้งค่าแอตทริบิวต์ newObj ["ชื่อ"] = 'lanfeng'; // รับค่า var user = newObj ["ชื่อ"];
1.Object.defineProperty (ใช้ได้กับ ECMAScript5)
// ตั้งค่าอ็อบเจ็กต์คุณสมบัติ defineproperty (newobj, "ชื่อ", {ค่า: "lanfeng", เขียนได้: จริง, enumerable: จริง, กำหนดค่าได้: จริง})1.Object.defineProperties
// ตั้งค่าอ็อบเจ็กต์คุณสมบัติ defineproperties (newobj, {"somekey": {value: "hello js", เขียนได้: true}, "อีกคีย์": {value: "foo bar", เขียนได้: false}}))JavaScript ไม่สนับสนุนแนวคิดของคลาส แต่สนับสนุนฟังก์ชั่นคอนสตรัคเตอร์พิเศษที่ใช้กับวัตถุ ก่อนหน้าตัวสร้างมันบอกให้ JS ยกตัวอย่างวัตถุใหม่เช่นการใช้ตัวสร้างและสมาชิกวัตถุถูกกำหนดโดยฟังก์ชั่น
ภายในตัวสร้างคำหลักที่นี่หมายถึงวัตถุที่สร้างขึ้นใหม่ ตรวจสอบการสร้างวัตถุตัวสร้างพื้นฐาน:
Function Car (รุ่น, ปี, ไมล์) {this.model = model; this.year = ปี; this.miles = ไมล์; this.toString = function () {return this.model + "ได้ทำ" + this.miles + "ไมล์"; }} // สร้างวัตถุอินสแตนซ์ var civio = ใหม่รถ ("Honda Civio", 2009,20000); var mondeo = ใหม่รถยนต์ ("Ford Mondeo", 2009,5000);ตัวอย่างข้างต้นเป็นรุ่นรูปแบบตัวสร้างที่เรียบง่าย แต่มีปัญหาบางอย่างซึ่งหนึ่งในนั้นก็คือมันยากที่จะใช้การสืบทอดและอีกอย่างคือฟังก์ชั่นเช่น ToString () จะถูกนิยามใหม่สำหรับวัตถุใหม่แต่ละชิ้นที่สร้างขึ้นโดยใช้ตัวสร้างรถยนต์ซึ่งไม่เหมาะเพราะฟังก์ชั่นดังกล่าว
มีแอตทริบิวต์ต้นแบบใน JavaScript หลังจากเรียกตัวสร้าง JS เพื่อสร้างวัตถุวัตถุใหม่จะมีแอตทริบิวต์ทั้งหมดของต้นแบบตัวสร้าง ด้วยวิธีนี้สามารถสร้างวัตถุหลายอย่างและสามารถเข้าถึงต้นแบบเดียวกันเพื่อใช้การแบ่งปันวิธีการ
Function Car (รุ่น, ปี, ไมล์) {this.model = model; this.year = ปี; this.miles = miles;} // ฟังก์ชันต้นแบบ car.prototype.toString = function () {return this.model + "ได้ทำ" + this.miles + "ไมล์"; } // สร้างวัตถุอินสแตนซ์ var civio = รถใหม่ ("Honda Civio", 2009,20000); var mondeo = ใหม่รถยนต์ ("Ford Mondeo", 2009,5000); console.log (civio.tostring ()) console.log (mondeo.tostring ())ตอนนี้สามารถแบ่งปันอินสแตนซ์เดียวของ ToString () ระหว่างรถยนต์ทุกคัน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น