在 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 每秒被调用数百万次。我知道大多数浏览器都会缓存指向最近调用的函数的指针,因此在这两种情况下,函数解析过程都会加快速度。然而,任何人都可以提供有关这两种情况下函数解析机制的更多细节,并提供一些见解,即哪种方法可能更快?解析机制在所有浏览器中都相同还是完全依赖于浏览器?