- 76 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 17:28:53.92 ID:q4sdOoqx.net]
- >>72
Array#forEachのコールバック関数にcurrentValueをthis値束縛する動作が自然ではなく、それによるメリットもないからだ prototype上のメソッドでもないただのコールバック関数がなぜarrayでもグローバルオブジェクトでもなく、cirtentValueに束縛するのだ? Function#bindでthis値を1に変更した場合、全ての要素値が1と扱う実装に利便性があるとは思えない (arrayに束縛するならわからんでもないが) forEachは第3引数でコールバック関数のthis値を指定できるが、これは異なるスコープからデータを渡すのに便利だ (jQuery#eachにはこの機能はない) イベントハンドラ関数のcutrentTargetへのthis値束縛もDOM3までは存在せず、DOM4で実装から逆輸入して規定されたものだ addEventListenerには元々、handleEventでthis値を束縛する機能があり、thisをcurrentTargetとして扱うコードはhandleEventを利用した途端に修正を迫られる event.currentTarget === this は相互運用性の為に仕様に取り込まれたに過ぎない ちなみに、jQueryではhandleEventを利用出来ない jQueryがthisを多用するのは仮引数を書く手間を減らす為だけに定められた歪なものだ ECMAScriptでは関数呼び出しされるまでthis値が定まらない不定値だが、jQueryはthisをローカル変数でも引数でもない第三の格納倉庫として利用し、コード上でthis値が変更されることを許さない this値に変更されて困る重要なデータを格納するのが当然と思う風潮が一部で生まれている気がしないでもない
|

|