วัตถุทุก JavaScript มีต้นแบบ ต้นแบบยังเป็นวัตถุ
วัตถุทั้งหมด JavaScript สืบทอดคุณสมบัติและวิธีการของพวกเขาจากต้นแบบของพวกเขา
ต้นแบบ JavaScript
วัตถุทั้งหมด JavaScript สืบทอดคุณสมบัติและวิธีการจากต้นแบบของพวกเขา
วัตถุที่สร้างขึ้นโดยใช้วัตถุที่แท้จริงหรือ new Object() , สืบทอดจากต้นแบบที่เรียกว่า Object.prototype
วัตถุที่สร้างขึ้นด้วย new Date() สืบทอด Date.prototype
Object.prototype อยู่ด้านบนของห่วงโซ่ต้นแบบ
วัตถุ JavaScript ทั้งหมด (Date, Array, RegExp, Function, ....) ได้รับมรดกจาก Object.prototype
การสร้างต้นแบบ
วิธีมาตรฐานในการสร้างต้นแบบวัตถุคือการใช้ฟังก์ชั่นวัตถุที่สร้าง:
ตัวอย่าง
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
ด้วยฟังก์ชั่คอนสตรัคที่คุณสามารถใช้ new คำหลักในการสร้างวัตถุใหม่จากต้นแบบเดียวกัน:
ตัวอย่าง
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
ลองตัวเอง» ฟังก์ชั่นคอนสตรัคเป็นแบบอย่างที่ดีสำหรับ Person วัตถุ
ก็ถือว่าปฏิบัติที่ดีในการทำงานของตัวสร้างชื่อที่มีอักษรตัวแรกบนกรณี
การเพิ่มคุณสมบัติและวิธีการเพื่อวัตถุ
บางครั้งคุณต้องการที่จะเพิ่มคุณสมบัติใหม่ (หรือวิธีการ) ไปยังวัตถุที่มีอยู่
บางครั้งคุณต้องการที่จะเพิ่มคุณสมบัติใหม่ (หรือวิธีการ) ไปยังวัตถุที่มีอยู่ทั้งหมดของประเภทที่กำหนด
บางครั้งคุณต้องการที่จะเพิ่มคุณสมบัติใหม่ (หรือวิธีการ) ไปยังวัตถุต้นแบบ
เพิ่มคุณสมบัติที่จะวัตถุ
การเพิ่มคุณสมบัติใหม่ให้กับวัตถุที่มีอยู่เป็นเรื่องง่าย:
สถานที่ให้บริการจะถูกเพิ่มลง myFather เพื่อไม่ให้ myMother เพื่อไม่ให้วัตถุบุคคลอื่นใด
เพิ่มวิธีการให้วัตถุ
เพิ่มวิธีการใหม่เพื่อวัตถุที่มีอยู่ยังเป็นเรื่องง่าย:
วิธีการที่จะถูกเพิ่มลง myFather เพื่อไม่ให้ myMother
เพิ่มคุณสมบัติในการเป็นแบบอย่างที่ดี
คุณไม่สามารถเพิ่มคุณสมบัติใหม่ที่จะเป็นต้นแบบลักษณะเดียวกับที่คุณเพิ่มคุณสมบัติใหม่ให้กับวัตถุที่มีอยู่เพราะต้นแบบไม่ได้เป็นวัตถุที่มีอยู่
เพื่อเพิ่มคุณสมบัติใหม่ในการคอนสตรัคคุณต้องเพิ่มเข้าไปในฟังก์ชั่นสร้าง:
ตัวอย่าง
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
ลองตัวเอง» คุณสมบัติต้นแบบสามารถมีค่าต้นแบบ (ค่าเริ่มต้น)
เพิ่มวิธีต้นแบบ
ฟังก์ชั่นคอนสตรัคของคุณยังสามารถกำหนดวิธี:
ตัวอย่าง
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
ลองตัวเอง» โดยใช้ prototype ทรัพย์สิน
จาวาสคริปต์ prototype คุณสมบัติช่วยให้คุณสามารถเพิ่มคุณสมบัติใหม่ให้กับต้นแบบที่มีอยู่:
ตัวอย่าง
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
ลองตัวเอง» สถานที่ให้บริการต้นแบบ JavaScript นอกจากนี้ยังช่วยให้คุณสามารถเพิ่มวิธีการใหม่ในการต้นแบบที่มีอยู่:
ตัวอย่าง
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
ลองตัวเอง» ปรับเปลี่ยนเพียงต้นแบบของคุณเอง ไม่เคยปรับเปลี่ยนต้นแบบของวัตถุ JavaScript มาตรฐาน