Rumah > Artikel > hujung hadapan web > Bolehkah Proksi ES6 Meniru Ciri noSuchMethod untuk Hartanah dalam JavaScript?
Meniru noSuchMethod untuk Sifat dalam JavaScript dengan Proksi ES6
Ciri noSuchMethod membenarkan untuk melaksanakan tingkah laku tersuai apabila mengakses kaedah yang tidak wujud dalam pelaksanaan JavaScript tertentu. Kefungsian yang serupa boleh dicapai untuk sifat menggunakan proksi ES6.
Menggunakan Proksi ES6
Objek proksi menawarkan gelagat tersuai untuk operasi asas seperti carian harta benda. Dengan menetapkan perangkap pada akses harta benda, tingkah laku noSuchMethod boleh dicontohi:
<code class="javascript">function enableNoSuchMethod(obj) { return new Proxy(obj, { get(target, p) { if (p in target) { return target[p]; } else if (typeof target.__noSuchMethod__ == "function") { return function(...args) { return target.__noSuchMethod__.call(target, p, args); }; } } }); }</code>
Penggunaan
Contohnya:
<code class="javascript">function Dummy() { this.ownProp1 = "value1"; return enableNoSuchMethod(this); } Dummy.prototype.test = function() { console.log("Test called"); }; Dummy.prototype.__noSuchMethod__ = function(name, args) { console.log(`No such method ${name} called with ${args}`); return; }; var instance = new Dummy(); console.log(instance.ownProp1); // value1 instance.test(); // Test called instance.someName(1, 2); // No such method someName called with [1, 2] instance.xyz(3, 4); // No such method xyz called with [3, 4] instance.doesNotExist("a", "b"); // No such method doesNotExist called with ["a", "b"]</code>
Contoh ini menggambarkan bahawa proksi memintas akses harta dan, sekiranya tidak wujud, mewakilkan kepada pelaksanaan noSuchMethod, membolehkan gelagat tersuai untuk sifat yang belum ditakrifkan secara eksplisit.
Atas ialah kandungan terperinci Bolehkah Proksi ES6 Meniru Ciri noSuchMethod untuk Hartanah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!