JavaScriptは:事前に定義された変数の値に文字列を変換します
-
20-09-2019 - |
質問
私は、次のようなJavaScriptオブジェクトを持っています:
venue = function(map, dataSet) {
// set some constants
this.VENUE_ID = 0;
this.VENUE_NAME = 1;
this.VENUE_CITY = 2;
this.filterBy = function(field, value) {
...
var filterValue = 'parent.VENUE_' + field;
}
}
さて、問題は、私は親オブジェクト上の定数の値を含むようにfilterValue
の値を必要とするということです。現在、私は上記に示した方法を使用してみましたが、その後、配列項目にアクセスしようとするとfilterValueを参照するが、これは単にundefinedを返します。
どのように私は、それが表す定数の値にfilterValue
変数を変換するのですか?
解決
この変数のスコープとは何の関係もありません。
var filterValue = this['VENUE_' + field];
だろう。
他のヒント
JavaScriptは、「親」の概念がありません。そして、私はあなたがスコープとコンテキストを混乱していると思います。その方法は、VaRのfilterByとして書かれていた場合は()あなたは異なる「スコープ」でアクセスする必要があると思います。それが書かれていたとしてではなく「これ」を使用することにより、あなたは同じオブジェクト内で保管しました。だから、あなたが書いたすべては「この」文脈である。
これを試してください:
var filterValue = this['VENUE_' + field];
所属していません StackOverflow