هل يمكن لـ JavaScript تنفيذ الحروف/المحددات الديناميكية؟
تسمح الحروف والمحددات الديناميكية لكائنات JavaScript بالتعامل مع الوصول إلى الخاصية وتعديلها بما يتجاوز الخصائص المحددة مسبقًا. في حين أن تقنيات جافا سكريبت السابقة استخدمت حروفًا محددة وأدوات ضبط للخصائص المعروفة، فإن هذه المقالة تستكشف إمكانية تطبيق حروف التقاط الكل وأدوات ضبط لأي خصائص غير محددة.
ES2015 Proxy: حل ديناميكي
قدم ES2015 بروكسيات JavaScript، والتي تتيح إنشاء كائنات تعمل كوسيط لكائنات أخرى. تفتح هذه الإمكانية حروف الحروف والضبط الديناميكية:const original = {
example: "value",
};
const proxy = new Proxy(original, {
get(target, name, receiver) {
if (Reflect.has(target, name)) {
let rv = Reflect.get(target, name, receiver);
if (typeof rv === "string") {
rv = rv.toUpperCase();
}
return rv;
}
return "missing";
},
});
console.log(`proxy.example = ${proxy.example}`); // "proxy.example = VALUE"
console.log(`proxy.unknown = ${proxy.unknown}`); // "proxy.unknown = missing"
في هذا المثال، يعترض كائن الوكيل الوصول إلى خاصية الكائن الأصلي. عند الوصول إلى خاصية سلسلة، يقوم الوكيل بتحويلها إلى أحرف كبيرة وإعادتها؛ بالنسبة للخصائص غير المعروفة، فإنها تُرجع "مفقودًا" بدلاً من غير محدد. هذا التطبيق متوافق مع جميع المتصفحات إذا كان المتصفح يدعم ES2015 (ES6). بالنسبة للمتصفحات الأقدم، فكر في استخدام عمليات التعبئة المتعددة أو التقنيات البديلة. توفر الوكلاء حلاً مرنًا للأحرف الديناميكية والمحددات، مما يتيح التعامل الفعال مع الممتلكات واستبطانها دون تعديل الكائن الأصلي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3