Я предпочитаю использовать селектор, и я применяю его в документе.
Это привязывается к документу и будет применяться к элементам, которые будут отображаться после загрузки страницы.
Например:
$(document).on("click", $(selector), function() {
// Your code here
});
x не может быть прокси-сервером самого себя
blockquote>Конечно, это возможно. Вы можете изменить переменную так, чтобы она указывала на прокси, просто выполнив
x = new Proxy(x, handler)
Пример примитива:
[ 117]const handler = { set: function(obj, prop, value) { console.log('setting prop: ', prop, ' to ', value) obj[prop] = value; return true; } }; let x = { 'a': 1, 'b': 2 }; x = new Proxy(x, handler); x.a = 3; // the method is automatically called
Если честно, используйте прокси, если можете
blockquote>Если вы действительно не можете использовать прокси, вы можете добиться этого, используя сеттеры и геттеры
Хотя это означает повторное объявление вашего исходного объекта
x
, я предполагаю, что он объявлен встроенным, как Минимальный, Полный и Проверяемый пример в вашем вопросе
let x = { _a: 1, _b: 2, get a() { return this._a; }, get b() { return this._b; }, set a(value) { console.log(`changing a from ${this._a} to ${value}`); this._a = value; }, set b(value) { console.log(`changing b from ${this._b} to ${value}`); this._b = value; } }; x.a = 3;