วันนี้เมื่อฉันทำงานในโครงการฉันพบสถานการณ์ที่ฉันต้องการสร้างวัตถุ JavaScript ดังนั้นบทความที่เขียนโดยชาวต่างชาติเกี่ยวกับการสร้างวัตถุ JavaScript จากนั้นอ่านและพิมพ์รหัส ฉันรู้สึกว่าวิธีนี้ค่อนข้างดีดังนั้นฉันจะแบ่งปันกับคุณที่นี่
1. สร้างวัตถุโดยใช้ฟังก์ชั่น:
การคัดลอกรหัสมีดังนี้:
// กำหนดวัตถุ
ฟังก์ชั่นสัตว์ (ประเภท)
-
this.name = "";
this.type = type;
this.introduction = function () {
กลับ "ชื่อของฉันคือ:"+this.name+"ฉันเป็นของ"+this.type;
-
-
Var Animal = สัตว์ใหม่ ("สัตว์ปีก"); // อินสแตนซ์วัตถุที่เราสร้างไว้ข้างต้น
Animal.name = "Xiaohong";
การแจ้งเตือน (Animal.introduction ()); // เรียกฟังก์ชั่นการแนะนำ (ในเวลานี้หน้าจะปรากฏขึ้น: ชื่อของฉันคือ Xiaohong ฉันเป็นของสัตว์ปีก);
ทุกคนต้องคุ้นเคยกับวิธีนี้ อย่างไรก็ตามการใช้วิธีนี้อาจทำให้เกิดการสูญเสียประสิทธิภาพ ที่นี่เรายกตัวอย่างวัตถุผ่านคีย์ใหม่ อันที่จริงกุญแจสำคัญในการทำสิ่งใหม่คือการทำสองสิ่ง 1. มีการกำหนดวิธีที่ไม่ระบุชื่อ 2. เรียกมันว่า. สิ่งนี้ไม่ได้มีประสิทธิภาพเท่ากับวิธีที่เราจะแนะนำต่อไป
2. ใช้ตัวอักษรวัตถุ:
ฉันไม่รู้ว่าการแปลถูกต้องหรือไม่ ฉันจะบอกที่อยู่เดิมในภายหลัง หากคุณสนใจคุณสามารถอ่านข้อความต้นฉบับ
การคัดลอกรหัสมีดังนี้:
// กำหนดวัตถุ
var book =
-
ชื่อ: "Dream of Red Mansions"
ประเภท: "งานวรรณกรรม",
getAuthor: ฟังก์ชั่น ()
-
Return: "ฉันเป็นลูกของ Cao Xueqin!";
-
-
Alert (Book.getauthor ()); // เรียกวิธีการวัตถุและหน้าจะปรากฏขึ้น: ฉันเป็นลูกของ Cao Xueqin
book.name = "slam dunk"; // แก้ไขคุณสมบัติของวัตถุ
การแจ้งเตือน (book.name); // ในเวลานี้หน้าจะปรากฏขึ้น: slam dunk
ฉันเชื่อว่าเมื่อคุณเห็นรหัสคุณควรเข้าใจว่าทำไมวิธีนี้มีประสิทธิภาพมากขึ้น เพราะมันเทียบเท่ากับการกำหนดตัวแปรทั่วโลก JavaScript เราสามารถใช้มันโดยตรงโดยไม่ต้องอินสแตนซ์ แต่มันดูแปลก ๆ จากนั้นวิธีแก้ปัญหาอยู่ที่นี่ มาดูวิธีที่สามกันเถอะ
3. Singleton ใช้ฟังก์ชั่น:
การแปลเป็นโหมด Singleton อาจไม่เหมาะสม มาดูรหัสก่อน:
การคัดลอกรหัสมีดังนี้:
// กำหนดวัตถุ
var gender = ฟังก์ชันใหม่ ()
-
this.type = "Girls";
this.speaking = function ()
-
กลับ "ฉัน"+this.type;
-
-
Alert (Gender.Speking ();) // หน้าจะปรากฏขึ้นเมื่อใช้วัตถุ: ฉันเป็นผู้หญิง
ถ้าคุณดูรหัสนี้มันคล้ายกับวิธีการของเรามากหรือไม่? อย่างไรก็ตามมันสามารถทำงานได้เหมือนวิธีหนึ่ง วิธีที่ 1: ใช้วัตถุหนึ่งครั้งและคุณต้องสร้างวัตถุหนึ่งครั้ง วิธีนี้สามารถใช้อย่างถาวรโดยการสร้างวัตถุหนึ่งครั้ง ดังนั้นวิธีนี้จึงคล้ายกับรูปแบบซิงเกิลตันในรูปแบบการออกแบบ