من الواضح أن هذا موضوع غير ذي صلة بـ IE (باستثناء IE المتقدم). على الرغم من ذلك ، يجب على الطلاب المهتمين التعرف على تنفيذ getters و setters في معيار eCmascript5. في كائن ، يتم قراءة التشغيل الأكثر استخدامًا للخصائص أو الأساليب (المرجع) والكتابة. على سبيل المثال ، O.Get ، وهي عملية قراءة ، و O.Set = 1 هي عملية كتابة. في الواقع ، في تنفيذ أحدث المتصفحات الرئيسية باستثناء أي ، يمكن استبدال القيمة الرئيسية لأي كائن بطرق Getter و Setter ، والتي تسمى "سمة Accessor".
ليس هناك شك في أن Getter مسؤول عن الاستعلام عن القيمة ، ولا يتخذ أي معلمات ، وأن Setter مسؤول عن تعيين القيمة الرئيسية. يتم تمرير القيمة في شكل المعلمات. في جسم وظيفته ، كل العائد غير صالح. على عكس الخصائص العادية ، عند الإعلان عن الحصول على أو تعيين فقط ، لا يمكن أن تقرأ خاصية الذاكرة والكتابة. عندما يكون له طريقة getter فقط ، يتم قراءتها فقط. وبالمثل ، عندما يكون لها طريقة Setter فقط ، فإن ما تقرأه دائمًا غير محدد. كيف تعلن سمات ذاكرة الكائن؟ أسرع طريقة هي استخدام بناء جملة الكائن الحرفي للكتابة. يرجى الاطلاع على الرمز التالي:
نسخة الكود كما يلي:
var oo = {
الاسم: 'xianxin' ،
الحصول على الجنس () {
عودة "الرجل" ؛
}
} ؛
// من الواضح أن هذا غير مسموح به ، لأن Xianxin لا يريد أن يغير العالم الخارجي حقيقة أنه رجل ، لذلك تم تعيين وظيفة القراءة فقط لممارسة الجنس.
oo.sex = 'امرأة' ؛
console.log (oo.sex) ؛ // النتيجة لا تزال رجل
ومن المثير للاهتمام ، أن هذا يفسد فهمنا السابق ، أي أن الكلمة الرئيسية للوظيفة لا تستخدم عند تحديد الطريقة. في الواقع ، احصل على أو تعيين هنا ، يمكنك فهمها كدالة في حالتين مختلفتين: الجانب الشامل (الكتابة) ، الجانب الآمن (القراءة) ، عندما يتم تقطيع الكل إلى شكل مختلف ، فهذا يعني أننا قد لا نحتاج بعد الآن إلى اتباع التقاليد من حيث التعبير ، لذلك لا نستخدم الكولون لفصل المفاتيح والقيم. ثم ، تابع المثال أعلاه. كيف ستصبح على حد سواء القراءة والكتابة بناءً على خصائص الذاكرة؟ ربما تعطيك الفقرة التالية الإجابة:
نسخة الكود كما يلي:
var oo = {
الاسم: 'xianxin' ،
الحصول على الجنس () {
if (this.sexx) {
إرجاع this.sexx ؛
}آخر{
عودة "الرجل" ؛
}
} ، تعيين الجنس (val) {
this.sexx = val ؛
}
} ؛
// أوه ، إنه متسامح لدرجة أنه حتى الناس يغيرون جنسه ، فهو يقبل ذلك.
oo.sex = 'امرأة' ؛
console.log (oo.sex) ؛ // المرأة امرأة
ربما تعتقد أن هذا غير ضروري ، لأنه يمكننا تجاهل GET وضبطه تمامًا والسماح لطريقة الجنس بشكل مباشر بوجود أذنين. لكن السبب في أن GET WET والتعيين بشكل منفصل هو فهم تشغيل القيمة الرئيسية لـ ECMASCRIPT5 على كائن JavaScript ، وهو تفسير أكثر صرامة. بطبيعة الحال ، في الصين الملوثة من قبل IE ، تبدو التقنيات السائدة الجديدة دائمًا في غير مكانها. في تطوير المشروع الفعلي ، قد لا تستخدم أبدًا GET وتعيين ، ولكن من الذي يمكن أن يضمن أنك لن تفعل ذلك في المستقبل ...