Life is beautiful: Javascriptクイズ(中級者向け):無名関数と実行効率の話
はてブコメントで軽く書いたけど、クイズだしこちらに移しとく。
オーバーヘッドは内側のfunctionがstyle2propを呼ぶたび毎回作られること。隠蔽はstyle2prop = function() { var capitalize = function(s) {...}; return function(s){...}; }()
処理系の実装しだいでは、抑制できなくもはなさそうだけど。
隠蔽形式は、
style2prop = (function () { var capitalize = function (str) { return str.charAt(1).toUpperCase(); }; return function (str) { return str.replace(/-[a-z]/g, capitalize); }; })();
とか、
style2prop = (function (capitalize) { return function (str) { return str.replace(/-[a-z]/g, capitalize); }; })(function (str) { return str.charAt(1).toUpperCase(); });
とか。速いかどうかはわかりませんが。