สำหรับการสร้างวัตถุนอกเหนือจากการใช้ตัวอักษรและตัวดำเนินการใหม่ในมาตรฐาน ECMASCRIPT 5 แล้ว Object.create () ยังสามารถใช้ได้ ฟังก์ชั่น Object.create () ยอมรับวัตถุสองชิ้นเป็นพารามิเตอร์: วัตถุแรกจำเป็นต้องมีเพื่อแสดงต้นแบบของวัตถุที่สร้างขึ้น วัตถุที่สองเป็นทางเลือกในการกำหนดคุณสมบัติต่าง ๆ ของวัตถุที่สร้างขึ้น (เช่นเขียนได้, enumerable)
การคัดลอกรหัสมีดังนี้:
var o = object.create ({x: 1, y: 7});
console.log (o); // object {x = 1, y = 7}
console.log (o .__ proto __); // object {x = 1, y = 7}
Calling Object.create () เป็นพารามิเตอร์แรกจะสร้างวัตถุโดยไม่มีต้นแบบซึ่งจะไม่มีคุณสมบัติวัตถุพื้นฐานใด ๆ (ตัวอย่างเช่นเนื่องจากไม่มีวิธี ToString () โดยใช้ตัวดำเนินการ + สำหรับวัตถุนี้จะทำการยกเว้น):
การคัดลอกรหัสมีดังนี้:
var o2 = object.create (null);
console.log ("มันคือ" + o2); // ประเภทข้อผิดพลาดไม่สามารถแปลง O2 เป็นประเภทดั้งเดิม
สำหรับเบราว์เซอร์ที่รองรับมาตรฐาน ECMASCRIPT 3 เท่านั้นคุณสามารถใช้วิธีการของ Douglas Crockford ในการดำเนินการ Object.create ():
การคัดลอกรหัสมีดังนี้:
if (typeof object.create! == 'function') {
Object.create = function (o) {
ฟังก์ชั่น f () {}
f.prototype = o;
คืน F () ใหม่;
-
-
newObject = object.create (oldObject);