0

次のような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変数をそれが表す定数の値に変換するにはどうすればよいですか?

4

3 に答える 3

3

これは、可変スコープとは何の関係もありません。

var filterValue = this['VENUE_' + field];

するだろう。

于 2009-07-29T10:26:00.527 に答える
2

JavaScript には「親」という概念がありません。そして、あなたは範囲と文脈を混同していると思います。そのメソッドが var filterBy() として記述されている場合は、別の「スコープ」でアクセスする必要があります。しかし、'this' を使用することで、それが書かれたのと同じオブジェクトに保持されます。したがって、あなたが書いたものはすべて「この」コンテキストにあります。

于 2009-07-29T12:46:26.013 に答える
1

これを試して:

var filterValue = this['VENUE_' + field];
于 2009-07-29T10:26:14.533 に答える