js apply
try{ var args = [/\w/, "."]; "*_*".replace.apply(this, args); } catch(e) { console.log(e) }
これを実行すると例外が出て
[.bject Window]
が出力される。なんだこれ。callでも同じ。
nativeの関数ってapplyで呼べないの?
追記
malaさんにコメントいただいたとおりapplyするとreplaceがthisに対して呼ばれてこういう結果に。そして例外が出るというのは勘違いでした。
var args = [/\w/, "."]; "".replace.apply("*_*", args);
だと期待通り
*.*
になりました。難しい!