質問

私は、次のような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];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top