使用 dart 中的括号表示法访问对象的属性

90i*_*ion 11 properties dart dart-html

我尝试执行以下操作:

var properties = ["height" , "width"];
for (var prop in properties){
  div.style[prop] = otherdiv.style[prop];
}
Run Code Online (Sandbox Code Playgroud)

但是 dart 似乎不接受这个括号表示法,还有其他方法可以使用 dart 中的字符串访问属性吗?

Gün*_*uer 6

您可以使用getPropertyValuesetProperty方法,例如

div.style.setProperty(prop, otherdiv.style.getPropertyValue(prop));
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于 DOM 对象。对于一般 Dart 对象,无法从计算名称访问属性。这是一种深思熟虑的语言选择 - 当它不必允许不可预测的访问时,它可以以不同的方式优化对象布局。如果您确实需要通过名称(或者最好通过 Symbol)动态访问属性,则需要使用 Mirror 库来进行反射。 (14认同)