如何在Javascript中从另一个成员函数调用成员函数

前端之家收集整理的这篇文章主要介绍了如何在Javascript中从另一个成员函数调用成员函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说我有这样的代码
function Chart(start,end,controller,method,chart)
{
    console.log('Chart constructor called');
    this.start = start;
    this.end = end;
    this.controller = controller;
    this.method = method;
    this.chart = chart;
    this.options = {};
}

Chart.prototype.update = function()
{
    console.log('update ' + new Date().getTime());
    $.getJSON('index.PHP',{
        controller: this.controller,method: this.method,START: this.start,END: this.end },function(json) { this.draw(json); }); //<-- Problem right here!
}              

Chart.prototype.draw = function(json)
{
    //lots of code here
}

我收到错误Uncaught TypeError:Object#< an Object>没有方法’画’.现在,我是第一个承认我对Javascript很新的人.我应该以另一种方式调用成员函数吗?或者我应该做一些完全不同的事情?

编辑:这是我创建对象的方式:

chartObj = new Chart(开始,结束,’OBF.RootCauses’,’ajaxRootCauses’,图表);

解决方法

这里的问题是,由于您正在定义一个新函数,因此更改了 – 因此这指的是您所使用的函数.

还有其他方法可以解决这个问题,但最简单的方法是将其保存到变量并在该变量上调用函数,如下所示:

Chart.prototype.update = function()
{
    console.log('update ' + new Date().getTime());
    var self = this;
    $.getJSON('index.PHP',function(json) { self.draw(json); });
}

请参阅Chris的答案,了解解决同一问题的不同方法.

原文链接:https://www.f2er.com/js/150357.html

猜你在找的JavaScript相关文章