วิธีการเขียนคลาสใน JavaScript ได้ถูกกล่าวถึงมาก่อน แต่ไม่มีการกล่าวถึงการใช้งานส่วนตัว อ่านบทความนี้
เรารู้ว่าสาระสำคัญของการนำไปปฏิบัติของคุณสมบัติส่วนตัวใน JS คือการปิด var + ดังต่อไปนี้
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่นบุคคล (n, a) {
// สาธารณะ
นี้.ชื่อ = n;
// ส่วนตัว
อายุต่างกัน = a;
this.getName = ฟังก์ชั่น(){
ส่งคืน this.name;
-
this.getAge = ฟังก์ชั่น(){
อายุกลับ;
-
-
การทดสอบมีดังนี้ อายุเป็นแบบส่วนตัวและไม่สามารถรับได้โดยใช้ตัวดำเนินการดอท แต่สามารถใช้ได้เฉพาะเมธอด getName เท่านั้น
คัดลอกรหัสรหัสดังต่อไปนี้:
var p = บุคคลใหม่ ('แจ็ค',23);
console.log(หน้า); // ไม่ได้กำหนด
console.log(p.getAge()); // 23
ไม่มีอะไรน่าประหลาดใจเกี่ยวกับสิ่งที่กล่าวมาข้างต้น มาใช้ฟังก์ชันเครื่องมือเพื่อใช้งานด้านล่างนี้กันดีกว่า
คัดลอกรหัสรหัสดังต่อไปนี้:
-
* @param {สตริง} ชื่อคลาส
* @param {ฟังก์ชัน} classImp
-
ฟังก์ชั่น $class(className, classImp){
functionclazz(){
ถ้า (ประเภทของ this.init == "ฟังก์ชั่น"){
this.init.apply (สิ่งนี้ ข้อโต้แย้ง);
-
-
classImp.call(clazz.ต้นแบบ);
หน้าต่าง [ชื่อคลาส] = clazz;
-
เขียนชั้นเรียน
คัดลอกรหัสรหัสดังต่อไปนี้:
$class('บุคคล', ฟังก์ชั่น(){
// คุณสมบัติส่วนตัวถูกกำหนดไว้ที่นี่
อายุ = '';
this.init = ฟังก์ชั่น (n, a) {
//คุณสมบัติที่แชร์ถูกแขวนไว้บนนี้และเริ่มต้นได้
นี้.ชื่อ = n;
// การเริ่มต้นคุณสมบัติส่วนตัว
อายุ = ก;
-
this.getName = ฟังก์ชั่น(){
ส่งคืน this.name;
-
this.getAge = ฟังก์ชั่น(){
อายุกลับ;
-
-
ใหม่วัตถุอินสแตนซ์
คัดลอกรหัสรหัสดังต่อไปนี้:
var p = บุคคลใหม่ ('แจ็ค',23);
console.log(p.name); // เหมือนกับแจ็ค คุณสามารถใช้ตัวดำเนินการจุดเพื่อรับมันได้
console.log(p.age); // ไม่สามารถรับส่วนตัวที่ไม่ได้กำหนดผ่านตัวดำเนินการจุด
console.log(p.getAge()); // 23 อายุส่วนตัวสามารถรับได้ผ่านวิธีสาธารณะ getAge เท่านั้น