2009-07-29 15 views
0

の値に文字列を変換し、私は次のようになりますJavaScriptオブジェクトを持って、次のの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変数を表す定数の値に変換するにはどうすればよいですか?

答えて

3

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

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

となります。

1

これを試してみてください:

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

JavaScriptが '親' の概念がありません。そして私はあなたが範囲と文脈を混乱させていると思います。そのメソッドがvar filterBy()として記述されていた場合、別の 'スコープ'でそのメソッドにアクセスする必要があります。しかし、「これ」を使うことによって、あなたは書かれたのと同じ目的の中にいました。だからあなたが書いたものはすべて、「この」文脈にあります。

+0

ああ私は見る!まあありがとう、私は分かりませんでした。私はこの時点まで各機能の外部に手動で 'this'を設定していました。理由は、関数をコールバックとして使うことと関係していたと思います。 – tombazza

関連する問題