المستوطنون والفلز في JavaScript هم أساليب أقل تعرضًا لها في الأوقات العادية. إنها ليست طرقًا قياسية نفسها ولا يتم دعمها إلا في المتصفحات غير LE (قد تكون هناك طرق أخرى يمكن القيام بها بواسطة kernel IE؟ لا أعرف الحل في الوقت الحالي) ، ولكن يمكن استخدامها العديد من الأشياء ، مثل:
1. قيود على الوصول إلى البيانات:
A.Value هي استدعاء طريقة getter إلى متغير القيمة. إذا تم طرح استثناء في تطبيق طريقة Getter ، فيمكن حظر الوصول إلى متغير القيمة.
2. استمع إلى متغيرات DOM:
Window.Name هي سمة DOM مفيدة للغاية عبر المجالات (المعروفة بتفاصيلها ، انظر Baidu للحصول على التفاصيل). إذا قمت بتجاوز تطبيق Setter لـ Window.name ، فيمكنك إدراك اتصال الذاكرة غير المتزامن عبر الصفحات.
3. استخدم خيالك ويمكن أن تفعل الكثير من الأشياء
يتم نقل كل ما يلي:
أولاً ، دعنا نلقي نظرة سريعة على ماهية السترات والمقاطعون ولماذا تكون مفيدة. بعد ذلك ، دعونا نرى المنصات التي تدعم الآن getTets والمستقبين.
getters و etters
يمكّنك Getters and Setters من الحصول على بيانات كائن أو إعداده بسرعة. بشكل عام ، يحتوي الكائن على طريقتين ، يتم استخدامهما للحصول على قيمة معينة وتعيينها ، مثل:
{getValue: function () {return this._value ؛} ، setValue: function (val) {this._value = val ؛}}تتمثل إحدى الفوائد الواضحة لكتابة جافا سكريبت بهذه الطريقة في أنه يمكنك استخدامه لإخفاء السمات التي لا تريد الوصول إليها مباشرة من قبل العالم الخارجي. يبدو الرمز النهائي مثل هذا (احفظ قيمة الكائن المقدم حديثًا بإغلاق):
حقل الوظيفة (val) {var value = val ؛ this.getValue = function () {return value ؛} ؛ this.setValue = function (val) {value = val ؛} ؛}حتى نتمكن من استخدامه مثل هذا:
var field = حقل جديد ("اختبار") ؛ field.value // => undefinedfield.setValue ("test2") field.getValue () // => "test2"دعنا نحاكي "سمة القيمة المخفية" في المثال أعلاه ، ويبدو أن رمزنا مثل هذا:
حقل الوظيفة (val) {var value = val ؛ this .__ definester __ ("value" ، function () {return value ؛}) ؛ this .__ definesetter __ (ومع ذلك ، فأنت لا ترغب في الكتابة بهذه الطريقة ، وتميل إلى تحديد getters والمستقبين في النموذج الأولي للكائن (لا يهم أين يتم كتابة المتغير الخاص) ، يمكننا استخدام بناء جملة آخر.
حقل الوظيفة (val) {this.value = val ؛} field.prototype = {get value () {return this._value ؛} ، set value (val) {this._value = val ؛}} ؛يبدو هذا بناء الجملة لا يصدق ، ولكن بعد استخدامه لفترة من الوقت ، من السهل قبوله.
التالي هو مثال آخر ، يسمح للعالم الخارجي بالحصول على مجموعة من أسماء المستخدمين ، ولكن لا يمكن الحصول على كائنات المستخدم الأصلية المخفية.
موقع الوظيفة (المستخدمين) {this .__ definester __ ("المستخدمين" ، الدالة () {//تذكر النقاط التالية:
داخل كائن ، يمكن أن يكون لكل متغير فقط getter أو setter واحد. (لذلك يمكن أن يكون للقيمة getter و setter ، ولكن لا تحتوي القيمة على اثنين من getters)
الطريقة الوحيدة لحذف getter أو setter هي: حذف الكائن [الاسم]. يمكن حذف إزالة بعض الخصائص الشائعة والغوتار والمقاطعون.
إذا كنت تستخدم __definegetter__ أو __definesetter__ ، فإنه يتجاوز getter أو setter من نفس الاسم المحدد سابقًا ، أو حتى خاصية (خاصية).
منصة
المتصفحات المدعومة هي:
Firefox
Safari 3+
أوبرا 9.5
ما سبق هو الوصف الكامل لطرق Setter و Getter التي تم تقديمها في JavaScript التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كنت تريد معرفة المزيد ، فيرجى الانتباه إلى wulin.com.