3
javascript 개체에 속성이 있는지 테스트 할 수 있습니까?자바 스크립트 개체에 속성이있는 경우 js-interop 테스트
현재 액세스하려는 각 속성에 대해 try/catch를 래핑 중입니다. 나는 속성이 객체 상에 존재 하는지를 검사하는 효율적인 방법이라고 생각하지 않는다.
javascript 개체에 속성이 있는지 테스트 할 수 있습니까?자바 스크립트 개체에 속성이있는 경우 js-interop 테스트
현재 액세스하려는 각 속성에 대해 try/catch를 래핑 중입니다. 나는 속성이 객체 상에 존재 하는지를 검사하는 효율적인 방법이라고 생각하지 않는다.
try
- catch
을 사용하면 Dart와 Js 사이에 교환이 하나만 있기 때문에이를 확인하는 더 효율적인 방법입니다.
import 'package:js/js.dart' as js;
import 'package:js/js_wrapping.dart' as jsw;
main() {
final myProxy = ...;
Map<String, dynamic> myProxyAsMap = jsw.JsObjectToMapAdapter.cast(proxy);
Iterable<String> keys = myProxyAsMap.keys;
}
을하지만 try
사용하는 것보다 keys.contains("key")
있는지 확인 덜 효율적이다 - catch
방법 :
타 방법과 다트 Map처럼 자바 스크립트 객체를 처리 할 수 있습니다. 또한 집중적으로 사용하는 경우 keys
keys = myProxyAsMap.keys.toList()
으로 목록을 복사하는 것이 좋습니다. 사실 myProxyAsMap.keys
은 여전히 기본 js 배열에 의해 구워집니다. .toList()
은 실제 다트 목록을 만들고 다트 js 교환을 방지합니다.