JavaScriptで、bObj内からaObj.myMethod()を呼び出したいとしましょう。私のアプリケーションの場合、設計の観点から、aObjはbObjの基本クラスです。JavaScriptは遅延バインディング言語です。つまり、myMethodは実行時に解決する必要があります。関数の解決は速いですか
////////// もしも
1-私は自然に自分のデザインを使用してbObj.prototype=aObjと言い、実行時にbObj.myMethodを呼び出します。
function bObj(){...};
bObj.prototype=aObj;
//later
var myBObj=new bObj();
myBObj.myMethod();
////////////////////////また
2-プロトタイプでは関数の解決が遅くなる可能性があるため、aObjをbObjのプロパティとして保持し、bObjの内部からaObj.myMethod()を呼び出します。
function bObj()
{
this.myAObj=new aObj();
...
}
//later:
var myBObj=new bObj();
myBObj.myAObj.myMethod();
私の主な関心事は実行速度です。私のアプリケーションでは、myMethodは1秒間に何百万回も呼び出されています。ほとんどのブラウザーは最近呼び出された関数へのポインターをキャッシュするので、どちらの場合も関数解決プロセスが高速化されることを私は知っています。しかし、これら2つのケースでの関数解決メカニズムの詳細を誰かが提供し、どちらの方法がおそらくより高速であるかについての洞察を与えることができますか?解決メカニズムはすべてのブラウザで同じですか、それとも完全にブラウザに依存していますか?