我有以下代码,我将按钮单击处理程序连接到匿名函数。我想迁移代码以使用静态函数。
当前代码:
[ grid, { xtype: 'splitter' },
{ title: 'Person Details', bodyPadding: 5, flex: 2,
items:
[
{ itemId: 'txtName', fieldLabel: 'Name:', xtype: 'textfield'},
{ itemId: 'txtAge', fieldLabel: 'Age', xtype: 'textfield'},
{ itemId: 'btnShow', xtype: 'button', height: '60', width: '20%', align: 'right', text: 'Show Data', handler: function (){ btnTest_Click(); }}
]
}
]
我想做这样的事情:
handler: btnTest_Click()
function btnTest_Click()
{
alert('Test');
}
我希望这是有道理的。我来自.NET编程背景,让您深入了解我为什么这样做。 :)
答案 0 :(得分:0)
处理程序需要对函数的引用。在代码的第二部分中,您正在执行fucntion并将结果传递给处理程序。
handler: btnTest_Click
作为旁注,您应该避免使用全局函数,Ext为您提供了更好的方法来构建应用程序。
答案 1 :(得分:0)
在JavaScript中没有static
函数,你可以模仿这样的行为:
var count = (function(){
var c = 0;
return function(){
return c++;
}
})();
console.log(count()); console.log(count()); console.log(count());
此外,在JavaScript function
中,名称实际上是使用()
执行的变量,因此
handler: function (){ btnTest_Click(); }}
和
handler: btnTestClick
会做同样的事情。
匿名function
的作用类似于function
。