gpt4 book ai didi

javascript - 如何将 JavaScript 函数转换为在 typescript 中工作

转载 作者:行者123 更新时间:2023-12-03 22:33:38 25 4
gpt4 key购买 nike

如果我这样写,我不能使用this关键词

  LoadDrawing(drawing_name) {
this.glg.LoadWidgetFromURL(drawing_name, null, this.LoadCB,drawing_name);
}


LoadCB(drawing, drawing_name) {
if (drawing == null) {
return;
}
this.DrawingName = drawing_name;
drawing.SetParentElement("glg_area");
}

我不知道该通过什么 drawing & drawing_name使用参数传递时得到相同的东西
LoadDrawing(drawing_name) {
this.glg.LoadWidgetFromURL(drawing_name, null, this.LoadCB(param1,param2),drawing_name);
}

最佳答案

您可以保留 LoadCB 的 this 绑定(bind)通过将其定义为箭头函数:

LoadDrawing(drawing_name) {
this.glg.LoadWidgetFromURL(drawing_name, null, this.LoadCB,drawing_name);
}


LoadCB = (drawing, drawing_name) => {
if (drawing == null) {
return;
}
this.DrawingName = drawing_name;
drawing.SetParentElement("glg_area");
}

请注意,这与 TypeScript 无关,而是与 ES6 JavaScript 类有关。

ES6 类方法对待 this以与使用 function 定义的函数相同的方式绑定(bind)关键字确实 - 依赖于调用站点而不是函数的词法范围。箭头函数使用词法范围,因此保留了 this在上述情况下具有约束力。

关于javascript - 如何将 JavaScript 函数转换为在 typescript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59420145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com