Javascript 将window.onresize合并到OO JS类中
我只是想更好地构造Javascript,并想知道如何将window.onresize合并到返回的对象中,如下所示:Javascript 将window.onresize合并到OO JS类中,javascript,window-resize,Javascript,Window Resize,我只是想更好地构造Javascript,并想知道如何将window.onresize合并到返回的对象中,如下所示: var baseline = function(){ var tall, newHeight, target, imgl, cur, images = []; return { init: function(selector, target){ this.images = document.querySelectorAl
var baseline = function(){
var tall, newHeight, target, imgl, cur, images = [];
return {
init: function(selector, target){
this.images = document.querySelectorAll(selector);
this.target = target;
this.setbase(this.images);
window.onresize = this.setbase(this.images);
},
setbase: function(imgs){
this.imgl = imgs.length;
if(this.imgl !== 0){
while(this.imgl--){
this.cur = imgs[this.imgl];
this.cur.removeAttribute("style");
this.tall = this.cur.offsetHeight;
this.newHeight = Math.floor(this.tall / this.target) * this.target;
this.cur.style.maxHeight = this.newHeight + 'px';
}
} else {
return false;
}
}
}
}();
人们会这样做吗?这样行吗?谢谢
编辑:
这样调用:
window.onload = function(){
baseline.init('img', '24');
};
我希望在调整窗口大小时,使用与初始init函数调用相同的参数调用baseline.init…以下是主要错误
init: function(selector, target){
this.images = document.querySelectorAll(selector);
this.target = target;
this.setbase(this.images);
// This line says call setbase now and assign the result of that
// as the onresize handler
window.onresize = this.setbase(this.images);
},
- 您的
没有指向您创建的this.images
。这适用于使用原型样式对象时。您应该只在函数中使用var images=[]
图像
- 有些变量看起来只在setBase中使用,它们应该是局部变量
- 看着你的对象,很难判断它应该做什么,听起来你在一个对象中包装代码只是为了把它包装成一个对象。基线是什么意思
this
,它们实际上是模块中的局部变量
这是主要的错误
init: function(selector, target){
this.images = document.querySelectorAll(selector);
this.target = target;
this.setbase(this.images);
// This line says call setbase now and assign the result of that
// as the onresize handler
window.onresize = this.setbase(this.images);
},
- 您的
没有指向您创建的this.images
。这适用于使用原型样式对象时。您应该只在函数中使用var images=[]
图像
- 有些变量看起来只在setBase中使用,它们应该是局部变量
- 看着你的对象,很难判断它应该做什么,听起来你在一个对象中包装代码只是为了把它包装成一个对象。基线是什么意思
this
,它们实际上是模块中的局部变量
啊,本·豪德尔!你必须在这个问题中加入更多的细节-你打算如何将其纳入?作为一种方法?@Jeffescalate在上面的编辑中提供了详细信息!啊,本·豪德尔!你必须在这个问题中加入更多的细节-你打算如何将其纳入?作为一种方法?@Jeffescalate在上面的编辑中提供了详细信息!