【javascript】function.bind()でハマった。
タイトル通り、javascriptの function.bind()でハマった。
gist.github.com
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
function.bind() で、文字列を分岐しようとしていますが、
default に分岐してしまったのです。
原因は
thisArg として渡されるプリミティブ値はオブジェクトに変換されます
Function.prototype.bind() - JavaScript | MDN
それで、
switch文は厳密等価演算子 === を使用している比較する
ということは、
String( "STR" ) === "STR" のように比較するため、
defaultに分岐しました。
// 1. bind する時に パラメータとして渡して使うか func.bind(null, str)(); // 2. toString() を使う switch(this.toString()) {...}
で変更すれば正しく分岐されます。