您的位置:首页 > Web前端 > JavaScript

Just another high performance string format function for JavaScript

2006-11-30 11:02 387 查看
// Copyright (c) HE Shi-Jun <hax.sfo at gmail dot com>, 2006
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license




format2.cache = ...{};




function format2(pattern) ...{




if (!(pattern in format2.cache)) ...{


format2.cache[pattern] = new Function('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');


}


return format2.cache[pattern](arguments);


}


Compare to previous method, it's even more fast in heavy using (especially on FireFox and Opera), because it's compile the pattern to function and cache it. But this method will waste memory. So the best practice is combining these two methods.

And the no cache version here, but not helpful, because it's lose the advantage of cacheable and will be very slow on Opera:



// Copyright (c) HE Shi-Jun <hax.sfo at gmail dot com>, 2006
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license




function format3(pattern) ...{


return eval('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: