Javascript 简化功能触发的原型设计
所以我创建了一个小的JavaScript函数库,我将使用它。有些用于UI函数,有些用于返回某些内容。下面我将发布两个代码,我想知道在进一步使用这个库之前,这个方法是否合适,是否是一个不错的举动,也请不要提及jQuery,因为这都是JavaScriptJavascript 简化功能触发的原型设计,javascript,function,prototype,Javascript,Function,Prototype,所以我创建了一个小的JavaScript函数库,我将使用它。有些用于UI函数,有些用于返回某些内容。下面我将发布两个代码,我想知道在进一步使用这个库之前,这个方法是否合适,是否是一个不错的举动,也请不要提及jQuery,因为这都是JavaScript HTMLElement.prototype.drag = function(bool) { var self = this; self.classList.add('draggable'); event.stopPropagation
HTMLElement.prototype.drag = function(bool) {
var self = this;
self.classList.add('draggable');
event.stopPropagation();
event.preventDefault();
var origLeft= parseInt(self.offsetLeft,10);
var origTop = parseInt(self.offsetTop,10);
var mdX = event.clientX;
var mdY = event.clientY;
var elements = [];
if(bool === true){
var j = window.localStorage.getItem('userSettings');
if(j){
self.style.left= j.left;
self.style.top = j.top;
}
}
function drag(bool) {
self.style.position="absolute";
self.style.zIndex=999;
self.style.left = origLeft + event.clientX - mdX + "px";
self.style.top = origTop + event.clientY - mdY + "px";
event.stopPropagation();
}
function stop(bool){
self.classList.remove('draggable');
self.style.zIndex=0;
document.removeEventListener('mousemove',drag,true);
document.removeEventListener('mouseup',stop,true);
if(bool === true){
var settings = {
left: self.style.left,
top: self.style.top
};
var b = JSON.stringify(settings);
window.localStorage.setItem('userSettings',b);
console.log(b);
}
event.stopPropagation();
}
document.addEventListener('mousemove',drag,true);
document.addEventListener('mouseup',stop,true);
};
上面的代码当然是用于draggable
函数,下面是getclientracs()
类函数,但更好
HTMLElement.prototype.getRect = function(){
var a = this.offsetLeft;
var b = this.offsetTop;
var c = this.offsetHeight + b;
var d = this.offsetWidth + a;
var f = this.offsetHeight;
var g = this.offsetWidth;
var obj = { };
obj.left = a;
obj.right=d;
obj.top=b;
obj.bottom=c;
obj.width = g;
obj.height=f;
return obj;
};
向你们展示这一切的目的是为了得到你们的想法,也许是关于原型的建议,或者我不应该这样做。我喜欢像这样执行方法
document.getElementById('div').getRect()代码>而不是使用函数getRect('div')代码>扩展主机对象不是一个好主意,请参阅。使它们可枚举是非常糟糕的,因为这会在使用for in
循环进行迭代时显示出来。我认为这属于in,而不是这里。如果小心扩展本机对象,则可以@澳洲航空公司不太擅长术语,所以让它们可以列举,不知道你的意思是什么?