Javascript dart2js是否能更好地优化常量对象?
当使用dart2js编译为JavaScript时,使用Javascript dart2js是否能更好地优化常量对象?,javascript,dart,dart2js,Javascript,Dart,Dart2js,当使用dart2js编译为JavaScript时,使用const构造函数创建的类实例是否比普通实例(使用new构造函数创建的类实例)更优化?以下是两种元组实现: 使用常量构造函数: 类元组{ 期末考试(1),(2),; foo()=>\u1+\u2; 常量元组(this.\u 1,this.\u 2); } void main(){ var a=常量元组(10,20); var b=常量元组(10,20); 印刷品(a); 印刷品(b); 打印(a.foo()); } 使用新的构造函数:
const
构造函数创建的类实例是否比普通实例(使用new
构造函数创建的类实例)更优化?以下是两种元组实现:
使用常量构造函数:
类元组{
期末考试(1),(2),;
foo()=>\u1+\u2;
常量元组(this.\u 1,this.\u 2);
}
void main(){
var a=常量元组(10,20);
var b=常量元组(10,20);
印刷品(a);
印刷品(b);
打印(a.foo());
}
使用新的构造函数:
类元组{
期末考试(1),(2),;
foo()=>\u1+\u2;
元组(this._1,this._2);
}
void main(){
var a=新元组(10,20);
var b=新元组(10,20);
印刷品(a);
印刷品(b);
打印(a.foo());
}
这就是new Tuple
在输出中的外观:
main:function(){
P.print(新的S.Tuple(10,20));
P.print(新的S.Tuple(10,20));
印刷品(30);
}
const Tuple
只创建一次C.Tuple\u 10\u 20=新的S.Tuple(10,20)代码>并按如下方式使用:
main:function(){
P.print(C.Tuple_10_20);
P.print(C.Tuple_10_20);
P.print(C.Tuple\u10\u20.\u1+C.Tuple\u10\u20.\u2);
}
请注意,在新元组
的情况下,函数调用已替换为其返回值文字,但在常量元组
输出中未发生此情况。请在回答中包含差异的相关部分;你的链接将在一年后过期。这是我们(dart2js团队)应该解决的问题。常量对象应始终至少与非常量对象一样好。