我有一个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,但这只是返回未定义试过。

如何将filterValue变量转换成它代表?

的常数的值
有帮助吗?

解决方案

此无关与可变范围。

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

会做。

其他提示

JavaScript有没有“父”的概念。我想你混淆范围和背景。如果该方法写成VAR filterBy()你必须访问它在不同的“范围”。但是,通过使用“这个”,你在同一个对象保存在它被写入。所以,你写的一切都是在“这个”背景下。

尝试这种情况:

var filterValue = this['VENUE_' + field];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top