JavaScript Class คืออะไรและจะใช้อย่างไร?



คลาสคือเทมเพลตโค้ดโปรแกรมที่ขยายได้สำหรับการสร้างอ็อบเจ็กต์ คลาสจาวาสคริปต์เป็นประเภทของฟังก์ชันและมีการประกาศด้วยคีย์เวิร์ดคลาส

ในการเขียนโปรแกรมเชิงวัตถุคลาสคือแม่แบบโปรแกรมโค้ดที่ขยายได้สำหรับการสร้างวัตถุ ชั้นเรียนสามารถคิดได้ว่าเป็นน้ำตาลสังเคราะห์มากกว่าการสืบทอดตามต้นแบบที่มีอยู่ของ JavaScript ในบทความนี้เราจะเข้าสู่ระดับลึกของคลาส JavaScript และเรียนรู้วิธีใช้ตามลำดับต่อไปนี้:

คลาส JavaScript คืออะไร?

ใน JavaScript คลาสคือฟังก์ชันประเภทหนึ่งและประกาศด้วยคีย์เวิร์ดคลาส คุณต้องใช้ไวยากรณ์นิพจน์ของฟังก์ชันเพื่อเริ่มต้นฟังก์ชันและไวยากรณ์นิพจน์คลาสเพื่อเริ่มต้นคลาส





// การเริ่มต้นฟังก์ชันด้วยนิพจน์ฟังก์ชัน const a = function () {}
// การเริ่มต้นคลาสด้วยนิพจน์คลาส const b = class {}

ใน JavaScript แทนที่จะใช้ฟังก์ชันคำหลักเพื่อเริ่มต้นเราใช้คลาสคำหลัก นอกจากนี้คุณสมบัติยังถูกกำหนดภายใน constructor () วิธีการ

จะใช้ JavaScript Class ได้อย่างไร?

รหัสที่ประกาศด้วย ฟังก์ชัน และคลาสทั้งสองส่งคืนฟังก์ชัน [[Prototype]] ด้วยต้นแบบฟังก์ชันใด ๆ สามารถกลายเป็นอินสแตนซ์ตัวสร้างโดยใช้คีย์เวิร์ดใหม่ ตัวอย่างเช่น:



const a = class {} // เตรียมใช้งานตัวสร้างจากคลาส const constructorFromClass = new a () console.log (constructorFromClass)

เอาท์พุต:

ตัวสร้าง {}: คลาส

ตอนนี้มีสามวิธีในการใช้คลาสใน JavaScript มาดูรายละเอียดของแต่ละวิธีพร้อมตัวอย่างกัน

กำหนดคลาส

ฟังก์ชันตัวสร้างเริ่มต้นด้วยพารามิเตอร์จำนวนหนึ่งซึ่งกำหนดให้เป็นคุณสมบัติของ 'นี้' หมายถึงฟังก์ชันตัวเอง อักษรตัวแรกของตัวระบุเป็นตัวพิมพ์ใหญ่ตามแบบแผน



// การเริ่มต้นฟังก์ชัน constructor function พนักงาน (name, empid) {this.name = name this.empid = empid}

ตอนนี้ถ้าเราแปลสิ่งนี้เป็นไวยากรณ์ของคลาสคุณจะเห็นว่าโครงสร้างมีความคล้ายคลึงกันมาก

การสอนเซิร์ฟเวอร์ sql สำหรับผู้เริ่มต้นพร้อมตัวอย่าง
// การเริ่มต้นคลาสนิยามคลาสพนักงาน {constructor (name, empid) {this.name = name this.empid = empid}}

เราสามารถพูดได้ว่าคีย์เวิร์ดของคลาสนั้นสื่อสารอย่างตรงไปตรงมามากขึ้น ความแตกต่างเพียงอย่างเดียวในไวยากรณ์ของการเริ่มต้นคือการใช้คีย์เวิร์ดคลาสแทนฟังก์ชัน นอกจากนี้ยังกำหนดคุณสมบัติภายใน constructor () วิธีการ

กำหนดวิธีการ

วิธีปฏิบัติทั่วไปอีกประการหนึ่งของฟังก์ชันตัวสร้างคือการกำหนด วิธีการ โดยตรงไปยังต้นแบบแทนที่จะใช้ในการเริ่มต้น เราจะนำตัวอย่างและดูว่ามันทำงานอย่างไร:

function พนักงาน (ชื่อ, empid) {this.name = name this.empid = empid} // การเพิ่มเมธอดให้กับ constructor staff.prototype.greet = function () {return `$ {this.name} กล่าวว่า hello.`}

เมื่อคุณเขียนโค้ดเดียวกันกับคลาสโค้ดจะง่ายขึ้นและเพิ่มเมธอดโดยตรง

คลาสพนักงาน {constructor (name, empid) {this.name = name this.empid = empid} // การเพิ่มเมธอดให้กับคอนสตรัคเตอร์ทักทาย () {return `$ {this.name} กล่าวว่า hello.`}}

แม้ว่าชั้นเรียนจะอนุญาตให้ใช้ไวยากรณ์ที่เรียบง่ายและกระชับ แต่บางครั้งคุณอาจต้องประนีประนอมกับความชัดเจนในกระบวนการ

การขยายคลาส

ข้อได้เปรียบของฟังก์ชันตัวสร้างและคลาสคือสามารถขยายเป็นพิมพ์เขียวออบเจ็กต์ใหม่โดยอิงจากพาเรนต์ สิ่งนี้ช่วยในการป้องกันการสร้างโค้ดซ้ำสำหรับออบเจ็กต์ที่คล้ายกัน แต่ต้องการคุณสมบัติเพิ่มเติมหรือคุณสมบัติเฉพาะบางอย่าง

ฟังก์ชันตัวสร้างใหม่สามารถสร้างได้จากพาเรนต์โดยใช้เมธอด call () ตัวอย่างเช่น:

// การสร้างคอนสตรัคเตอร์ใหม่จากข้อมูลฟังก์ชันพาเรนต์ (ชื่อ, Empid, เงินเดือน) {// ตัวสร้างเชนพร้อมการเรียกพนักงานโทร (นี่, ชื่อ, Empid) this.salary = เงินเดือน}

ตอนนี้เมื่อเราเขียนโค้ดเดียวกันโดยใช้คลาสซูเปอร์คีย์เวิร์ดจะถูกใช้แทนการโทรเพื่อเข้าถึงฟังก์ชันหลัก

// การสร้างคลาสใหม่จากข้อมูลคลาสหลักจะขยายพนักงาน {constructor (name, empid, เงินเดือน) {// Chain constructor with super super (name, empid) // Add a new property this.salary = เงินเดือน}}

ชั้นเรียนช่วยให้คุณสร้างวิธีที่กระชับมากขึ้น วัตถุ พิมพ์เขียวและฟังก์ชันตัวสร้างอธิบายถึงสิ่งที่เกิดขึ้นภายใต้ประทุนในลักษณะที่เฉพาะเจาะจงมากขึ้น

ด้วยเหตุนี้เราจึงมาถึงตอนท้ายของบทความของเรา ฉันหวังว่าคุณจะเข้าใจวิธีใช้ JavaScript Class

ความสัมพันธ์ระหว่าง java และ javascript

ตอนนี้คุณรู้เกี่ยวกับ JavaScript Class แล้วลองดูไฟล์ โดย Edureka การฝึกอบรมการรับรองการพัฒนาเว็บจะช่วยให้คุณเรียนรู้วิธีสร้างเว็บไซต์ที่น่าประทับใจโดยใช้ HTML5, CSS3, Twitter Bootstrap 3, jQuery และ Google API และปรับใช้กับ Amazon Simple Storage Service (S3)

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ 'คลาส JavaScript' แล้วเราจะติดต่อกลับไป