TypeScript - 访问内部对象中的变量

时间:2018-05-31 19:23:58

标签: javascript typescript devextreme dx-data-grid

我有一个类型脚本类,它接受一个url(string)作为构造函数中的参数。在类中,我有另一个类,它是devextreme数据网格的视图模型。我面临的问题是我不知道如何访问内部对象(GridViewModel)中的url属性,该对象具有作为其一部分的函数。

export class MyClassOne {
    private myUrl: string;

    constructor(url: string) {
        this.myUrl = url;
    }

    public GridViewModel = {
        dataGridOptions: {
            dataSource : { store: someSource}
                   ...
            aFunction:  function(e){

                // this.myUrl is undefined
                var postUrl =  this.myUrl;               
            }             
        }
    }
}  
var myClassOne = new MyClassOne("https://www.google.com"); 

我的问题是,如何在内部对象函数中访问“this.myUrl”?请帮忙

谢谢,

2 个答案:

答案 0 :(得分:2)

'this'的范围已在函数内部发生变化。您可以创建一个箭头函数来保留范围或使用自变量保持外部范围。

例如带箭头操作符的函数。您的功能可以替换为

e => {
var postUrl =  this.myUrl;              
}

答案 1 :(得分:0)

所以,基本上我需要用e =>替换函数(e)。保留'this'的范围

export class MyClassOne {
    private myUrl: string;

    constructor(url: string) {
        this.myUrl = url;
    }

    public GridViewModel = {
        dataGridOptions: {
            dataSource : { store: someSource}
                   ...
            aFunction:  e => {

                // this.myUrl is undefined
                var postUrl =  this.myUrl;               
            }             
        }
    }
}

var myClassOne = new MyClassOne("https://www.google.com");