如何优化JS代码?

How to optimize JS code?

Chrome 剖析说:"Not optimized: assignment to parameter in arguments object"。我可以做些什么来优化此代码?

this.buffer.forEach(function(tilepos, ypos)
{
  tilepos.forEach(function(tileinfo, xpos)
  {
    _self.tiles.putTile('ground', xpos, ypos, _self.ground);
  });
});

它可能不喜欢您在块内对 tilepos 采取行动。

如果你想消除错误,我建议你按如下方式进行,但也能获得一点性能提升:

for(var i = 0; i < this.buffer.length; i++)
{
    for(var j = 0; j < this.buffer[i].length; j++)
    {
        _self.tiles.putTile('ground', i, j, _self.ground);
    }
}

您很可能通过重新分配函数参数或参数元素来覆盖参数。

function f(a) {
    a = 100; // reassigns arguments[0]
};

function f(a) {
    arguments[0] = 100; // same thing
};

我觉得你的代码没问题,所以我认为问题出在你的 putTile 方法上。如果需要重新分配函数参数,请创建它的本地副本:

function f(a) {
    var localA = a;
    localA = 100;
}

如果你提供putTile方法,我可以看一下并更新我的答案。