Для этой функции:
function doThing(values,things){
var thatRegex = /^http:\/\//i; // is this created once or on every execution?
if (values.match(thatRegex)) return values;
return things;
}
Как часто движку JavaScript приходится создавать регулярное выражение? Один раз за выполнение или один раз за загрузку страницы / синтаксический анализ скрипта?
Чтобы избежать ненужных ответов или комментариев, я лично предпочитаю размещать регулярное выражение вне функции, а не внутри. Вопрос в поведении языка, потому что я не уверен, где это искать, или это проблема движка.
Мне напомнили, что я не упоминал, что это будет использоваться в цикле. Мои извинения:
var newList = [];
foreach(item1 in ListOfItems1){
foreach(item2 in ListOfItems2){
newList.push(doThing(item1, item2));
}
}
Итак, учитывая, что он будет использоваться много раз в цикле, имеет смысл определять регулярное выражение вне функции, но такова идея.
также обратите внимание, что сценарий является довольно обобщенным с целью изучения только поведения и стоимости создания регулярного выражения.