• ARعربي
  • ENEnglish
  • ESEspañol
  • FAفارسی
  • FRFrançais
  • IDIndonesia
  • ITItaliano
  • JA日本語
  • KO한국어
  • RUРусский
  • TRTürkçe
  • UKУкраїнська
  • ZH简体中文

ما قصد داریم این پروژهٔ متن‌باز را در دسترس همهٔ مردم در سرتاسر دنیا قرار دهیم.

به ترجمهٔ محتوای این آموزش به زبان خودتان کمک کنید/a>.

    نقشه آموزش
    اشتراک گذاری
    • آموزش
    • زبان جاوااسکریپت
    • متفرقه
    • Proxy and Reflect
    بازگشت به درس
    این محتوا تنها در این زبان‌ها موجود است: عربي, English, Español, Français, Italiano, 日本語, 한국어, Русский, Türkçe, Українська, 简体中文. لطفاً به ما

    Error on reading non-existent property

    Usually, an attempt to read a non-existent property returns undefined.

    Create a proxy that throws an error for an attempt to read of a non-existent property instead.

    That can help to detect programming mistakes early.

    Write a function wrap(target) that takes an object target and return a proxy that adds this functionality aspect.

    That’s how it should work:

    let user = {
      name: "John"
    };
    
    function wrap(target) {
      return new Proxy(target, {
          /* your code */
      });
    }
    
    user = wrap(user);
    
    alert(user.name); // John
    alert(user.age); // ReferenceError: Property doesn't exist: "age"
    let user = {
      name: "John"
    };
    
    function wrap(target) {
      return new Proxy(target, {
        get(target, prop, receiver) {
          if (prop in target) {
            return Reflect.get(target, prop, receiver);
          } else {
            throw new ReferenceError(`Property doesn't exist: "${prop}"`)
          }
        }
      });
    }
    
    user = wrap(user);
    
    alert(user.name); // John
    alert(user.age); // ReferenceError: Property doesn't exist: "age"
    • © 2007—2025  Ilya Kantor
    • دربارهٔ پروژه
    • تماس با ما