【发布时间】:2016-07-07 03:57:47
【问题描述】:
假设我有一个函数dayToString,定义如下:
function dayToString(n) {
return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][n];
}
很简单。用法可能如下所示:
var d = new Date();
var todayAsString = dayToString(d.getDay());
我的问题是,dayToString 中的数组是在每次调用时重新创建的,还是只创建一次?
编辑
澄清:我知道如何通过闭包或外部数组手动避免这种重新分配。澄清一下我的初衷:当前的 JavaScript 引擎(V8、SpiderMonkey、JavaScriptCore、Chakra 等)是否足够聪明,可以意识到数组是静态的,并且是这样处理的? JS 规范中是否有某些内容阻止了这种优化?
【问题讨论】:
标签: javascript function v8 spidermonkey javascriptcore