我对Java语言方法的替代问题感到困惑了一段时间。问题是我在控件之一上设置了onclick事件处理程序,并且在事件处理程序触发实际方法之前,我需要注入(inject)一些方法。
假设DGrid.Headerclik实际上分配给了onclick事件。
这就是我所做的
DGrid.Headerclik = handleinLocal;
因此,每当用户单击网格时,控件就会进入handleinLocal方法。在这里,我必须进行一些处理,然后调用基本Headerclik()。
function handleinLocal(){
// here i need to call the DGrid.Headerclik() method (base)
}
但这不能按预期工作。在handleinLocal()中调用DGrid.Headerclik()时,将递归调用handleinLocal()方法。但是我需要调用基本方法...
有没有办法在JavaScript中实现theis?
最佳答案
您应该将先前的处理程序存储在(关闭)变量中:
(function() {
var oldHandler = DGrid.Headerclik;
DGrid.Headerclik = handleInLocal;
function handleInLocal() {
// ...
oldHandler();
// ...
}
})();