يمكن تقسيم خصائص الكائنات في ES5 إلى "سمات البيانات" و "سمات الإكسسور".
تُستخدم سمات البيانات بشكل عام لتخزين قيم البيانات. تتوافق سمات الملحقات مع العمليات المحددة/الحصول عليها ، ولا يمكن تخزين قيم البيانات مباشرة.
خصائص سمة البيانات: القيمة ، قابلة للكتابة ، قابلة للتكوين ، قابلة للتكوين.
Explanation: قابلة للتكوين: True/False ، ما إذا كان يمكن حذف السمة من خلال الحذف ، وما إذا كان يمكن تعديل خصائص السمة ، وما إذا كان يمكن تعديل السمة إلى سمة الملحقات ، الافتراضية الخاطئة ؛
التعداد: صواب/خطأ ، سواء كان يمكن إرجاعه من خلال في حلقة ، خطأ افتراضي ؛
قابلة للكتابة: صواب/خطأ ، ما إذا كان يمكن تعديل قيمة السمة ، فإن الافتراضي كاذب ؛
القيمة: غير محددة ، اضبط قيمة الخاصية ، غير محددة.
سمات الملحقات: تعيين ، الحصول على ، تعداد ، قابلة للتكوين.
Explanation: قابلة للتكوين: True/False ، ما إذا كان يمكن حذف السمة من خلال الحذف ، وما إذا كان يمكن تعديل خصائص السمة ، وما إذا كان يمكن تعديل السمة إلى سمة الملحقات ، الافتراضية الخاطئة ؛
التعداد: صواب/خطأ ، سواء كان يمكن إرجاعه من خلال في حلقة ، خطأ افتراضي ؛
المجموعة: وظيفة ، وظيفة تسمى عند قراءة قيم الخصائص ؛
الحصول على: وظيفة ، وظيفة تسمى عند تعديل قيمة الخاصية.
إضافة خصائص إلى كائنات أو تعديل خصائص الخصائص الموجودة باستخدام الكائن.
Object.DefineProperty (الكائن ، PropertyName ، واصف):
شرح المعلمة: الكائن: كائن يحتاج إلى إضافة أو تعديل السمات ؛
PropertyName: اسم الخاصية ، تنسيق السلسلة ؛
واصف: وصف السمات ، إعداد خصائص سمات البيانات أو سمات الملحقات.
تحليل مثال:
خصائص البيانات:
var emp = {name: 'tom'} ؛ object.defineProperty (emp ، 'name' ، {crinbable: false}) ؛ emp.name = 'jery' ؛ console.log (emp.name) ؛ // output tom ، لأنه تم تعيينه على passobject.defineProperty (emp ، 'age' ، {قابلة للتكوين: خطأ ، صواب ، القيمة: 22}) ؛ 22emp.age = 25 ؛ console.log (emp.age) ؛ // output 25 ، إعداد القابل للكتابة هو truedelete emp.age ؛ console.log (emp.age) ؛خصائص الملحقات:
var emp = {_ name: 'tom' ، _ العمر: 20} ؛ object.defineProperty (emp ، 'name' ، {get: function () {return this._name ؛}}) ؛ console.log (emp.name) ؛ الطريقة ، لا يمكن تعديل قيمة _name object.defineProperty (EMP ، 'Age' ، {configable: true ، get: function () {return this._age ؛ _age باستخدام طريقة get dep.age ؛ console.log (emp.age) ؛ // الإخراج غير المحدد ، قابل للتكوين صحيح ، يمكنك استخدام طريقة الحذف لحذف سمة EMP.AGEملاحظة: يمكن أن تلعب سمة الملحق دورًا جيدًا في حمايته. عندما تكون هناك طريقة الحصول فقط ، فهي للقراءة فقط ولا يمكن الكتابة ؛ على العكس من ذلك ، عندما يكون هناك مجموعة فقط ، يمكن أن تكتب فقط ولكن لا تقرأ.
ما ورد أعلاه هو مناقشة موجزة لسمات بيانات JavaScript وسمات الملحقات التي يقدمها لك المحرر. آمل أن يدعم الجميع wulin.com أكثر ~