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();
});

とか。速いかどうかはわかりませんが。