برنامه نویسی

“سلاح مخفی در JavaScript هیچ کس به شما نمی گوید: با پروکسی ها ملاقات کنید!”

وقتی بیشتر مردم به اشیاء جاوا اسکریپت فکر می کنند ، به جفت های ارزش کلیدی استاتیک فکر می کنند. اما اگر بتوانید اشیاء ایجاد کنید چه می شود رهگیری کردنبا کنترل کردن، و حتی دوباره تعریف کردن عملیات اساسی مانند جستجوی ملک ، تکالیف و دعوت عملکرد؟

به دنیای جذاب خوش آمدید پروکسی های جاوا اسکریپت – یک ویژگی غالباً نامشخص و در عین حال قدرتمند.

پروکسی چیست؟

در هسته آن ، الف Proxy یک بسته بندی در اطراف یک شی (نامیده می شود هدف) این عملیات را رهگیری می کند و به شما امکان می دهد سفارشی کردن رفتار آنها

به آن فکر کنید که یک سپر جادویی را در اطراف یک شی قرار دهید – هرگونه تعامل با شیء ابتدا از منطق سفارشی شما عبور می کند.

const target = { message: "Hello" };

const handler = {
  get: function(obj, prop) {
    return prop in obj ? obj[prop] : "Property not found!";
  }
};

const proxy = new Proxy(target, handler);

console.log(proxy.message); // "Hello"
console.log(proxy.nonExistentProp); // "Property not found!"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اینجا ، همه get عملیات رهگیری می شود. اگر این ملک وجود نداشته باشد ، به جای آن یک پیام سفارشی را به جای آن برمی گرداند undefinedبشر

چرا پروکسی ها اینقدر خاص هستند؟

پروکسی ها بی نظیر هستند زیرا به شما امکان می دهند:

  • اعتبار داده ها قبل از تنظیم آن روی یک شی.
  • خصوصیات مجازی ایجاد کنید بدون ذخیره آنها
  • اشیاء حساس را ایمن کنید با کنترل دسترسی.
  • سیستم های واکنشی بسازید مانند موتور واکنش پذیری vue.js!

در واقع ، چارچوب های مدرن مانند VUE 3 برای ردیابی و پاسخ دادن به تغییرات داده به طور کارآمد از پروکسی های زیر هود استفاده کنید.


مثال در دنیای واقعی: اشیاء پیش فرض خودکار

تصور کنید که اگر وجود نداشته باشد ، هر ویژگی ای را که به آن دسترسی پیدا می کنید ، می خواهید.

const autoDefault = new Proxy({}, {
  get: (obj, prop) => {
    if (!(prop in obj)) {
      obj[prop] = 0; // Default value
    }
    return obj[prop];
  }
});

console.log(autoDefault.score); // 0
autoDefault.score += 10;
console.log(autoDefault.score); // 10
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نیازی به بررسی دستی نیست که آیا یک ملک وجود دارد – پروکسی آن را به صورت خودکار انجام می دهد!


استفاده پیشرفته: اشیاء ایمن با اعتبار سنجی

همچنین می توانید آنچه را که کاربران می توانند تنظیم کنند محدود کنید:

const securedUser = new Proxy({}, {
  set: (obj, prop, value) => {
    if (prop === "age" && typeof value !== "number") {
      throw new TypeError("Age must be a number");
    }
    obj[prop] = value;
    return true;
  }
});

securedUser.age = 25; // Works fine
securedUser.name = "Alice"; // Works fine
// securedUser.age = "twenty"; // Throws TypeError
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این یک لایه سبک از امنیت و اعتبارسنجی به اشیاء شما می افزاید!


پایان

پروکسی های جاوا اسکریپت یک ابرقدرت پنهان است که می تواند تغییر شکل نحوه ساخت برنامه ها.

از مقادیر ساده پیش فرض گرفته تا موتورهای واکنش پذیری پیچیده ، وقتی استاد پروکسی ها را انجام می دهید ، امکانات بی پایان است.

دفعه بعد که فکر می کنید “کاش می توانم رفتار کنم که چگونه این شیء رفتار می کند ،” به یاد داشته باشید – پروکسی پشت شما را دارد!


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا