Typescript:在子函数中使用方法参数
Typescript: Use Method Parameter in Subfunction
我不太确定如何用语言表达我的问题,所以让我展示一些我的代码:
class MyClass
{
public Columns: MyCol[];
public AddColumn(Header: string, Url: string)
{
Columns.Add(new MyCol(Header, function()
{
$.ajax(Url, ...);
}));
}
}
//Somewhere in the execution
var mc = new MyClass()
mc.AddColumn("col1", "myurl1");
mc.AddColumn("col2", "mycol2");
mc.Columns[0].CallFunction();
mc.Columns[1].CallFunction();
所以我所期望的是,它将ajax调用"myurl1",然后"myurl2"。但是它调用了两次myurl2。Url-Parameter的作用域不应该只是在方法内部,所以它应该工作吗?
问候Neokil
使用Lambda表达式
你应该使用Lambda表达式(像() => {...}
那样写)而不是正则函数定义(function() {...}
)。Lambda表达式用于将外部作用域的变量传递到内部函数的作用域。
在你的情况下,AddColumn
的内容应该看起来像这样(没有尝试它自己):
Columns.Add(new MyCol(Header, () => {
$.ajax(Url, ...);
}));
相关文章:
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用带有参数的数据表sAjaxSource
- 如何在mysql查询(NODE.js)中重复使用一个参数
- 如何确保函数/方法参数为certian类型
- 如何使用pass参数从jQuery.getJSON获取回调
- Javascript不能在一个命令中使用函数参数
- 使用方法将扫描的项目添加到总数中
- D3使用方法链接时的不同行为
- 使用useMasterKey参数分析每个服务器查询
- 有没有一种方法可以使用函数参数的值来声明变量
- 我可以在 javascript 中使用函数参数的不同方法是什么
- 如何使用函数参数调用对象方法
- 是否可以使用方法同时传递对象和其他参数
- Javascript Scale(x,y)方法没有't在Canvas上使用负参数
- 使用varargs参数调用重载方法时出现Nashorn错误
- 如何不使用方法调用的第一个参数而仍然传递JSLint
- 如何使用javascript获取方法参数的值
- Javascript:从onclick事件调用对象函数/方法,使用动态参数
- Typescript:在子函数中使用方法参数