このようなメソッドを呼び出すことができます
Func.apply(null,[123]);
関数がthis
ポインターに依存している場合、例外をスローしますか?
thisArg
this
の呼び出しに提供されるの値fun
。これは、メソッドから見た実際の値ではない可能性があることに注意してください。メソッドが非厳密モードコードの関数でnull
ありundefined
、グローバルオブジェクトに置き換えられ、プリミティブ値がボックス化される場合。
つまり、関数がstrictモードを使用しない限り、のwindow
代わりにthenが使用されますnull
。strictモードを使用する場合は、this
になりますnull
。
それが例外を引き起こすかどうかは、適用されている関数に完全に依存します。関数がを使用しない場合はthis
、値を渡すのは完全に安全です。this
nullではない可能性のあるプレーンオブジェクトとして扱う場合、厳密モードでのみ失敗する可能性があります。設定されているプロパティに依存している場合はTypeError
、厳密モードと非厳密モードで同様にスローされる可能性があります。非厳密モードでのみ失敗する関数を作成するのも非常に簡単です(たとえば、明示的なチェックを追加することによって)
(少なくともいくつかの)組み込み配列関数は明示的なチェックを使用します。たとえばArray.prototype.split(undefined, [1,2,3])
、ChromeではTypeError: Cannot call method 'apply' of undefined