Function.prototype.bind の最初の引数を「定義」できず、呼び出されたコンテキストを保持できない理由はありますか?
これを行うと非常に便利なユースケースがありますが、最初の引数が出力関数をウィンドウにバインドするため、null または未定義を渡すように見えます。
別の言い方をすれば、現在のネイティブ バインドの実装では、関数のコンテキストをバインドせず、バインドされた関数に引数プレフィックスのみをバインドすることはできないようです。
元:
var a = function() {
this.foo = function() { console.log(this) };
this.foo = this.foo.bind(undefined,1);
};
var b = new a();
b.foo(); // Logs Window instead of the instance b;
これは、Google Chrome バージョン 27.0.1453.116 m でテストされました。