Rumah  >  Artikel  >  hujung hadapan web  >  Kuasa Proksi

Kuasa Proksi

WBOY
WBOYasal
2024-09-05 22:34:33515semak imbas

The Power of Proxy

Objek proksi ialah salah satu ciri yang paling berkuasa namun kurang digunakan dalam JavaScript!

Ia membolehkan anda mengawal sepenuhnya cara objek anda berkelakuan dalam JavaScript dengan mentakrifkan gelagat tersuai untuk operasi asas pada objek, seperti mendapatkan atau menetapkan sifat.

Ia juga boleh digunakan untuk membuat pengesahan tersuai, pengikatan data, pengelogan atau bahkan mencipta objek reaktif sepenuhnya—tanpa memerlukan perpustakaan!

Ini contoh mudah:

const user = {
  name: 'Zain',
  age: 22
};

const handler = {
  get: (target, prop) => {
    console.log(`Getting property ${prop}`);
    return prop in target ? target[prop] : 'Property does not exist';
  },
  set: (target, prop, value) => {
    if (prop === 'age' && typeof value !== 'number') {
      console.log('Invalid age type. It should be a number.');
    } else {
      console.log(`Setting property ${prop} to ${value}`);
      target[prop] = value;
    }
    return true;
  }
};

const proxiedUser = new Proxy(user, handler);

console.log(proxiedUser.name); // Logs: Getting property name
proxiedUser.age = 'twenty-two'; // Logs: Invalid age type. It should be a number.
proxiedUser.age = 23; // Logs: Setting property age to 23

Dengan Proksi, anda boleh memintas dan mentakrifkan semula hampir mana-mana gelagat asas untuk objek—menambah lapisan kawalan dan penyesuaian yang tidak dapat ditandingi oleh mana-mana ciri lain dalam JavaScript!


Untuk kekal dikemas kini dengan lebih banyak kandungan yang berkaitan dengan pembangunan web dan AI, sila ikuti saya. Mari belajar dan berkembang bersama!

Atas ialah kandungan terperinci Kuasa Proksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn