Dart js互操作测试javascript对象是否具有属性

Dart js互操作测试javascript对象是否具有属性,dart,dart-js-interop,Dart,Dart Js Interop,是否可以测试javascript对象是否包含属性 我目前正在包装我想访问的每个属性的try/catch。我认为这不是检查对象上是否存在属性的有效方法。使用try-catch是更有效的检查方法,因为Dart和Js之间只有一次交换 另一种方法是像飞镖一样处理javascript对象: 将'package:js/js.dart'导入为js; 将“package:js/js_wrapping.dart”作为jsw导入; main(){ 最终myProxy=。。。; 映射myProxyAsMap=jsw

是否可以测试javascript对象是否包含属性


我目前正在包装我想访问的每个属性的try/catch。我认为这不是检查对象上是否存在属性的有效方法。

使用
try
-
catch
是更有效的检查方法,因为Dart和Js之间只有一次交换


另一种方法是像飞镖一样处理javascript对象:

将'package:js/js.dart'导入为js;
将“package:js/js_wrapping.dart”作为jsw导入;
main(){
最终myProxy=。。。;
映射myProxyAsMap=jsw.JsObjectToMapAdapter.cast(代理);
Iterable keys=myproxyamap.keys;
}
但是,与使用
try
-
catch
方式相比,检查
keys.是否包含(“key”)
效率较低。此外,如果您集中使用这个<代码>键<代码>,请考虑用<代码> >键= MyPROXASMAP.KEY.TROIST()/<代码>复制列表。实际上,
myproxyamap.keys
仍然由底层js数组烘焙。
.toList()
将创建一个真实的Dart列表并阻止Dart js交换