我继承了一些我正在努力解决的javascript代码。我相信我需要调用一个函数作为一种方法'这是另一种作为方法的功能。我在下面列出了删节代码。
drawer = {
...
ChartDrawer: function(var1,var2,etc)
{
...
this.drawChart = function(node)
{
...
$(this.jqValToggle + ' #valuation-box').click(function(){
console.log('clicked');
drawer.valToggle();
var targetNode = addrFromRawAddr(rawAddr)
showNarrative(targetNode);
/// THIS IS WHERE I'D LIKE TO CALL drawChart FROM
});
}
}
您能否建议调用' drawChart'从上面指定的代码中的位置。
我原本以为我可以使用drawer.ChartDrawer.drawChart(node);
但这会得到“未捕获的TypeError:drawer.ChartDrawer.drawChart”不是一个函数'。我也试过使用' this.drawChart'没有成功
答案 0 :(得分:3)
试试这个:
$(this.jqValToggle + ' #valuation-box').click(function(){
/* ... */
this.drawChart();
}.bind(this));
通过强制单击处理程序在当前上下文中运行,而不是在单击元素的上下文中运行,我们保留对drawChart
方法的访问权限。