Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesan Perubahan Pembolehubah dalam JavaScript?

Bagaimanakah Saya Boleh Mengesan Perubahan Pembolehubah dalam JavaScript?

DDD
DDDasal
2024-12-29 06:38:09408semak imbas

How Can I Detect Variable Changes in JavaScript?

Mendengar Perubahan Pembolehubah dalam JavaScript

Dalam JavaScript, selalunya wajar untuk dimaklumkan apabila nilai pembolehubah berubah. Ini boleh dicapai menggunakan objek Proksi, yang diperkenalkan pada 2018. Objek Proksi membenarkan penciptaan proksi yang memintas perubahan sifat dan bertindak balas sewajarnya.

Untuk menggunakan objek Proksi, mula-mula buat objek sasaran untuk menjadi diperhatikan:

var targetObj = {};

Seterusnya, cipta proksi menggunakan objek Proksi, menyatakan panggilan balik untuk dilaksanakan apabila harta set:

var targetProxy = new Proxy(targetObj, {
  set: function (target, key, value) {
      console.log(`${key} set to ${value}`);
      target[key] = value;
      return true;
  }
});

Apabila sifat objek sasaran ditetapkan melalui proksi, fungsi panggil balik dilaksanakan. Contohnya:

targetProxy.hello_world = "test"; // console: 'hello_world set to test'

Objek Proksi mempunyai kelemahan kerana ia tidak tersedia dalam penyemak imbas lama dan mungkin tidak berkelakuan seperti yang diharapkan dengan objek tertentu. Untuk memerhatikan perubahan dalam objek bersarang, perpustakaan khusus seperti Observable Slim boleh digunakan.

Observable Slim

Observable Slim ialah perpustakaan yang direka untuk memerhati perubahan dalam objek bersarang. Untuk menggunakannya, mula-mula buat objek untuk diperhatikan:

var test = {testing:{}};

Kemudian, gunakan Observable Slim untuk mencipta proksi dengan fungsi cipta, menyatakan panggilan balik untuk dilaksanakan apabila perubahan berlaku:

var p = ObservableSlim.create(test, true, function(changes) {
    console.log(JSON.stringify(changes));
});

Apabila sifat objek yang diperhatikan berubah, fungsi panggil balik dilaksanakan. Contohnya:

p.testing.blah = 42; // console:  [{"type":"add","target":{"blah":42},"property":"blah","newValue":42,"currentPath":"testing.blah",jsonPointer:"/testing/blah","proxy":{"blah":42}}]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Perubahan Pembolehubah dalam JavaScript?. 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