Chrome浏览器分析说:“未优化:在参数对象中赋值给参数”。我该怎么做才能优化这段代码?
this.buffer.forEach(function(tilepos, ypos)
{
tilepos.forEach(function(tileinfo, xpos)
{
_self.tiles.putTile('ground', xpos, ypos, _self.ground);
});
});
答案 0 :(得分:0)
你可能不喜欢你在街区内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);
}
}
答案 1 :(得分:0)
您最有可能通过重新分配函数参数或参数元素来覆盖参数。
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
方法,那么我可以查看并更新我的答案。