'调用函数作为方法'这是另一种作为方法的功能。

时间:2016-12-22 15:56:36

标签: javascript function methods

我继承了一些我正在努力解决的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'没有成功

1 个答案:

答案 0 :(得分:3)

试试这个:

    $(this.jqValToggle + ' #valuation-box').click(function(){
        /* ... */
        this.drawChart();
    }.bind(this));

通过强制单击处理程序在当前上下文中运行,而不是在单击元素的上下文中运行,我们保留对drawChart方法的访问权限。