2017-07-17 11 views
1

例えば、私が機能かもしれませんJavaScriptで:attrが文字列であるハッシュとしてのJavascriptオブジェクトのように、属性に動的にアクセスする方法はありますか?

this.getPrettyAttr = function(attr){ 
    return attr + " is: " + this[attr]; 
} 

を、のようなものを取得する:

は "強度が7である"、 "、 "高さは5です"電源は9001 "、"名前はベティ "

ダーツでこれを行うのと同じ方法がありますか、手動でもう一度やり直していますか?

+0

いいえ、他の1つは特にDOMのものでした。 1つのコメントは、DartがDOMに対してのみ行い、一般的なものではないと指定しています。 – Jenny

答えて

3

このためにミラーを使用できます。ここでは、参照のための記事です:

import 'dart:mirrors'; 

getPrettyAttr(Object x, Symbol attr) { 
    var mirror = reflect(x); 
    return '$attr is: ${mirror.getField(attr)}'; 
} 

しかし、ダートでミラーを使用することに注意すべき点があります:https://www.dartlang.org/articles/libraries/reflection-with-mirrors

あなたのケースでは、あなたのような何かを書くことができます。プログラムがサーバー側(つまり、dart:ioを使用している)の場合、ミラーは問題ありません。しかし、あなたのプログラムがJavaScriptにコンパイルされている場合、コンパイラはあなたのアプリで呼び出される関数を知る方法がないので、ミラーはあなたのアプリケーションを膨らませる可能性があります。

関連する問題