Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中,新的操作员是否有性能成本?_Javascript_Performance - Fatal编程技术网

在javascript中,新的操作员是否有性能成本?

在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

一般来说,方法B有性能成本:

方法A

 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更具体地说,使用原型声明的方法将被共享。但是属性不会是这样的。像这样的微基准很少测试您试图测试的东西,特别是在这里测试语言特性