TypeScript - 访问内部对象中的变量
TypeScript - Accessing a variable in a inner object
我有一个类型脚本 class,它接受 url(字符串)作为构造函数中的参数。在 class 中,我有另一个 class,它是 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"?请帮忙
谢谢,
'this' 的范围在 function.Either 中发生了变化,您可以创建一个 箭头函数 ,它保留范围或使用 self 变量 来保存外部范围。
例如带有箭头运算符的函数。您的功能可以替换为
e => {
var postUrl = this.myUrl;
}
所以,基本上我需要用 e=> 替换 function(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");
我有一个类型脚本 class,它接受 url(字符串)作为构造函数中的参数。在 class 中,我有另一个 class,它是 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"?请帮忙
谢谢,
'this' 的范围在 function.Either 中发生了变化,您可以创建一个 箭头函数 ,它保留范围或使用 self 变量 来保存外部范围。
例如带有箭头运算符的函数。您的功能可以替换为
e => {
var postUrl = this.myUrl;
}
所以,基本上我需要用 e=> 替换 function(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");