在javascript中调用对象内部的对象函数

时间:2014-04-28 09:49:40

标签: javascript function object

我尝试创建一个javascript类,并在加载时从HTML中实例化它的一些对象。该类包含一些函数和一些事件侦听器。

function Rating (id) 
{
    this.id = id;

    $(id).click(function() 
    {
        alert('click '+ this.id);
        this.debug();
    });

    this.debug = function() 
    {
        alert(' debug');
    }
  }

我的目标是从事件侦听器调用类函数(在本例中为debug内部单击侦听器)。不幸的是,当我点击对象时,我只看到事件监听器警报而不是调试警报(fiddle)。

我知道这是一个基本问题。但是我发现的所有答案都解释了将类创建为变量而不是函数。我采用了这种方式,因为我的目标是在同一页面中创建类的多个实例。有没有办法使用"变量类来实例化多个对象"从对象调用内部函数?提前谢谢。

1 个答案:

答案 0 :(得分:1)

经典之一,事件处理程序中的上下文是window

最简单的解决方案是在封闭范围内声明一个变量来存储您需要的值:

function Rating (id) 
{
    var r = this;
    this.id = id;

    $(id).click(function() {
        alert('click '+ r.id);
        r.debug();
    });

    this.debug = function() 
    {
        alert(' debug');
    }
  }