在 darjs 中 for in 的替代方法是什么?
what is alternative of for in in darjs?
我正在 dart:js?
中寻找 javascript for in
的替代方案
例如:
if('addEventListener' in event) {
event.addEventListener(change);
}
我使用了 is
运算符,但它在 Safari 中抛出错误,因为事件中不存在 addEventListener。
if(event.addEventListener is Function) {
event.addEventListener(change);
}
检查对象是否支持特定方法不是您在 Dart 中做的事情。您应该检查该对象是否实现了具有该方法的接口。
在本例中,您可能需要:
if (event is EventTarget) {
event.addEventListener("change", change);
}
如果您认为该对象可能支持该功能,但您实际上并不知道它从哪个接口获取该功能,那么您可以在这里尝试使用动态查找,但您需要捕获如果该函数不存在,您得到的错误。
dynamic e = event; // if it isn't dynamic already.
Object addEventListener;
try {
addEventListener = e.addEventListener;
} on Error {
// ignore.
}
if (addEventListener is Function) {
addEventListener(...);
}
我正在 dart:js?
中寻找 javascriptfor in
的替代方案
例如:
if('addEventListener' in event) {
event.addEventListener(change);
}
我使用了 is
运算符,但它在 Safari 中抛出错误,因为事件中不存在 addEventListener。
if(event.addEventListener is Function) {
event.addEventListener(change);
}
检查对象是否支持特定方法不是您在 Dart 中做的事情。您应该检查该对象是否实现了具有该方法的接口。
在本例中,您可能需要:
if (event is EventTarget) {
event.addEventListener("change", change);
}
如果您认为该对象可能支持该功能,但您实际上并不知道它从哪个接口获取该功能,那么您可以在这里尝试使用动态查找,但您需要捕获如果该函数不存在,您得到的错误。
dynamic e = event; // if it isn't dynamic already.
Object addEventListener;
try {
addEventListener = e.addEventListener;
} on Error {
// ignore.
}
if (addEventListener is Function) {
addEventListener(...);
}