重变量应该超出函数吗?

mit*_*221 5 javascript performance

我目前有一个运行大约200次的功能.

功能看起来像这样:

function GetB(av,bol){
var bxes=[
["11","12","13","21","22","23","31","32","33"],
["14","15","16","24","25","26","34","35","36"],
["17","18","19","27","28","29","37","38","39"],
["41","42","43","51","52","53","61","62","63"],
["44","45","46","54","55","56","64","65","66"],
["47","48","49","57","58","59","67","68","69"],
["71","72","73","81","82","83","91","92","93"],
["74","75","76","84","85","86","94","95","96"],
["77","78","79","87","88","89","97","98","99"]
];

//code
}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是这个数组正在减慢一切因为我认为它每次都重写数组bxes(或类似的东西)

这个bxes数组永远不会被修改,我不介意把它变成一个全局数组.

  • 我需要担心重写的事吗?(或者浏览器是否会跟踪它是否被修改过,如果不是,它将不会重写它)

zie*_*mer 3

为什么不把它移到函数之外呢?(为什么要冒导致性能问题的风险?)

它甚至不一定必须是“全局”的 - 只是在函数的父作用域中 - 但函数和bxes其他代码都可以存在于父函数或闭包中......

(function(){
  var bxes = [...];
  window.GetB = function(av,bol){...};
})();
Run Code Online (Sandbox Code Playgroud)