لقد تمت مناقشة طريقة كتابة الفصول في JavaScript من قبل. ولكن لا تتم مناقشة التطبيقات الخاصة. اقرأ هذا المقال.
نحن نعلم أن جوهر تنفيذ الخصائص الخاصة في JS هو var + Close. على النحو التالي
انسخ رمز الكود كما يلي:
وظيفة الشخص (ن، أ) {
// عام
this.name = n;
// خاص
فار العمر = أ؛
this.getName = function(){
إرجاع هذا. الاسم؛
}
this.getAge = function(){
سن العودة؛
}
}
الاختبار كما يلي: العمر خاص ولا يمكن الحصول عليه باستخدام عامل النقطة، وبدلاً من ذلك، يمكن استخدام طريقة getName فقط.
انسخ رمز الكود كما يلي:
var p = new Person('jack',23);
console.log(p.age);// غير محدد
console.log(p.getAge()); // 23
ليس هناك ما يثير الدهشة بشأن ما ورد أعلاه، فلنستخدم وظيفة الأداة لتنفيذه أدناه.
انسخ رمز الكود كما يلي:
/**
* @param {String} اسم الفئة
* @param {Function} classImp
*/
الدالة $class(className, classImp){
وظيفة كلاز () {
إذا (نوع this.init == "وظيفة"){
this.init.apply(this,حجج);
}
}
classImp.call(clazz.prototype);
window[className] = clazz;
}
اكتب فصلا
انسخ رمز الكود كما يلي:
$class('شخص', وظيفة(){
// يتم تعريف الخصائص الخاصة هنا
فار العمر = '';
this.init = وظيفة(ن, أ){
// تم تعليق الخصائص المشتركة على هذا وتهيئتها.
this.name = n;
// تهيئة الملكية الخاصة
العمر = أ؛
};
this.getName = function(){
إرجاع هذا. الاسم؛
};
this.getAge = function(){
سن العودة؛
}
});
كائن مثيل جديد
انسخ رمز الكود كما يلي:
var p = new Person('jack',23);
console.log(p.name); // شائع في جاك، يمكنك استخدام عامل النقطة للحصول عليه
console.log(p.age); // لا يمكن الحصول على القطاع الخاص غير المحدد من خلال عامل النقطة
console.log(p.getAge()); // 23 لا يمكن الحصول على العمر الخاص إلا من خلال الطريقة العامة getAge