-6

大家
好,我怎样才能更好地优化我的 js 对象。如您所见,有很多重复,我想找到更好的方法来编写这个对象。我是 JS 新手,这就是为什么这么愚蠢的问题。提前致谢。

//field odject
var $field = $("#field");
var field = {
    width: $field.width(),
    offsetTop: $field.offset().top,
    offsetLeft: $field.offset().left,
    offsetRight: $field.offset().left + $field.width(),
    offsetBottom: $field.offset().top + $field.height()
};
4

2 回答 2

3

我猜你在问如何在构造这个对象时不进行这么多的方法调用?

您可以只使用一些变量来缓存您多次使用的值:

var $field = $("#field");
var width = $field.width();
var offset = $field.offset();
var top = offset.top;
var left = offset.left;

var field = {
    width: width,
    offsetTop: top,
    offsetLeft: left,
    offsetRight: left + width,
    offsetBottom: top + $field.height()
};
于 2013-07-09T14:43:25.220 回答
0
function field($sel){

     //field odject
     var $field = $($sel);
     var offset = $field.offset();
     var field = {
         width: $field.width(),
         offsetTop:offset.top,
         offsetLeft: offset.left,
         offsetRight: offset.left + $field.width(),
         offsetBottom: offset.top + $field.height()
     };

     return field;

}

您可以通过创建构造函数并从函数返回对象来扩展您的功能。

于 2013-07-09T14:44:32.033 回答