繁体   English   中英

dart2js是否可以更好地优化const对象?

[英]Does dart2js optimize const objects better?

使用dart2js编译为JavaScript时,使用const构造函数创建的类实例是否比使用普通实例(使用new构造函数创建)更优化?

这是2个元组的实现:

使用常量构造函数:

class Tuple{
  final _1, _2;
  foo()=> _1 + _2;
  const Tuple(this._1,this._2);
}

void main() {
  var a = const Tuple(10,20);
  var b = const Tuple(10,20);
  print(a);
  print(b);
  print(a.foo());
}

使用新的构造函数:

class Tuple{
  final _1, _2;
  foo()=> _1 + _2;
  Tuple(this._1,this._2);
}
void main() {
  var a = new Tuple(10,20);
  var b = new Tuple(10,20);
  print(a);
  print(b);
  print(a.foo());
}

dart2js输出比较

这就是new Tuple在输出中的外观:

main: function() {
    P.print(new S.Tuple(10, 20));
    P.print(new S.Tuple(10, 20));
    P.print(30);
}

仅在C.Tuple_10_20 = new S.Tuple(10, 20);才创建const Tuple C.Tuple_10_20 = new S.Tuple(10, 20); 并像这样使用:

main: function() {
    P.print(C.Tuple_10_20);
    P.print(C.Tuple_10_20);
    P.print(C.Tuple_10_20._1 + C.Tuple_10_20._2);
}

请注意,在使用new Tuple的情况下,函数调用已替换为其返回值文字,但对于const Tuple输出却没有发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM