在javascript中,新的操作员是否有性能成本?
一般来说,方法B有性能成本: 方法A在javascript中,新的操作员是否有性能成本?,javascript,performance,Javascript,Performance,一般来说,方法B有性能成本: 方法A var foo = { propertyA: ... }; var SomethingSimilarToFoo = { propertyA: … }; 方法B Var foo = function(){ this.propertyA = .. … } foo1 = new foo(config); SomethingSimilarToFoo = new foo(co
var foo = {
propertyA:
...
};
var SomethingSimilarToFoo = {
propertyA:
…
};
方法B
Var foo = function(){
this.propertyA = ..
…
}
foo1 = new foo(config);
SomethingSimilarToFoo = new foo(config);
看
一方面,文字对象似乎比Firefox上的实例快得多。原因可能是函数调用很昂贵
另一方面,Chrome的某些版本的实例速度更快
无论如何,使用没有原型的实例是有点无用的。但是使用原型,实例可以继承属性(这意味着更少的内存),您可以获得很大的灵活性。担心这样的细节通常是毫无意义的。这只是一个猜测,我假设
方法a
在方法B
创建对象时创建散列。我相信对象比散列要贵。当使用方法a
时,您是否有一个此
与foo相关的上下文可用?创建实例的成本比每次创建一个全新的对象要低得多。想想看,如果你有100个对象和一个对象的100个实例,除非你有非常少量的对象,否则它将是方法B。更不用说方法A需要多少代码了。如果您想要更好的性能,还可以使用原型。@SpencerWieczorek更具体地说,使用原型声明的方法将被共享。但是属性不会是这样的。像这样的微基准很少测试您试图测试的东西,特别是在这里测试语言特性