Можно ли в JS как-то отслеживать событие обращения к объекту?
var obj = {
get foo() {
console.log({ name: 'foo', object: obj, type: 'get' });
return obj._foo;
},
set bar(val) {
console.log({ name: 'bar', object: obj, type: 'set', oldValue: obj._bar });
return obj._bar = val;
}
};
moment('2019-04-24', 'YYYY-MM-DD').unix() < new Date().getTime() / 1000
getCoord = function (elem)
{
var box = elem.getBoundingClientRect();
var body = document.body;
var docEl = document.documentElement;
var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;
var clientTop = docEl.clientTop || body.clientTop || 0;
var clientLeft = docEl.clientLeft || body.clientLeft || 0;
var top = box.top + scrollTop - clientTop;
var left = box.left + scrollLeft - clientLeft;
return { top: Math.round(top), left: Math.round(left) };
};
(function($){
var methods = {
init : function(options) {
console.log('init');
},
show : function( ) {
},
hide : function( ) {
},
update : function(content) {
console.log(content);
}
};
$.myPlug = function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error( 'Метод с именем ' + method + ' не существует для $.chats' );
}
};
})(jQuery);
$.myPlug(); // init
$.myPlug('update', 'Привет мир'); // Привет мир
$.myPlug('blalbla') // $.error