次のようなコードを見ています
this.f.call(this);
または他のいくつかのケースでは
this.someObj.f.call(this.someObj);
これらとの間に違いはありますか
this.f();
this.someObj.f();
動作が異なる状況はありますか? (たとえば、this
orsomeObj
が null の場合、または実際にはオブジェクトでf
はない場合、または実際には関数ではない場合、動作は異なりますか?一方が例外をスローし、もう一方が例外をスローしない方法は考えられませんが、多分私は何かが欠けている...)
.call
編集:明確にするために:はい、関数によって見られる値を指定するために使用できることを知っています。構文this
を使用できない場合に役立ちます(プロパティではないか、使用していないため)かどうかがわかります)。私の質問は、一般的にどのように機能するかではありません。私の質問は、オブジェクト プロパティ構文とは対照的に 使用する明確な理由が見当たらないこのケースに関するものです。obj.f()
f
obj
.call
.call