javascript:用户定义的对象表现不佳

时间:2017-06-02 01:28:00

标签: javascript object properties

我得到的行为无法解释或弄清楚如何修复:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
1.5   318.3   399.9   367.1   447.4   500.0 

在第一个c.log中,我得到了

lefts = [{x: 10, y: 20},{x: 30, y: 40},{x: 50, y: 60},{x: 70, y: 80}];

function fnCalcAvg(dims){

    // the purpose of this is to take the lefts array and calculate 
    // the average values for x and y 

    var theSum = {};
    theSum.x = 0;
    theSum.y = 0;

    console.log([theSum.x, theSum.y, theSum]);

    $j(dims).each(function(_k, _v){
        theSum.x += (_v.x * 1);
        theSum.y += (_v.y * 1);
    });


    console.log([theSum.x, theSum.y, theSum]);

    // if I 'return' here, the object values are correct

    theSum.x = parseInt(theSum.x / dims.length);
    theSum.y = parseInt(theSum.y / dims.length);

    console.log([theSum.x, theSum.y, theSum]);

    return theSum;
}

在第二个:

0, 0, {x: 50, y: 674} // individual values are right, object is not

在最后:

200, 2699, {x: 50, y: 674} // individual values are right, object is not

因此,如果我记录x和y的各个值,它是正确的,但是记录对象,我会在分配任何内容之前得到值。

如果在分配最终值(parseInt ...)之前放置一个return语句,则会正确报告对象属性。

这里发生了什么?单个属性如何与记录对象时显示的属性不同?这只是Chrome的一个问题吗?这是范围问题吗?

0 个答案:

没有答案