在js中另一个类的主体中使用类的方法(具有形式this.variable的变量)

时间:2015-06-08 06:46:46

标签: javascript

我有一个Hotspot类,它有一个方法,其中一个方法使用类变量this.pano_id。 这个班级是这样的

function Hotspot(pano_id){
    alert("First: " + pano_id);
    this.pano_id = pano_id;
}

它有方法

Hotspot.prototype.Hotspots = function (){
    alert(this.pano_id);
};

现在我已经在其他文件中创建了一个类实例,比如

var hotspot = new Hotspot(pano_id);
TweenLite.to(clear_pano[pano_num].material.materials[i], time, {opacity: 1, ease: Expo.easeOut, onComplete: hotspot.Hotspots});

它正在创建类对象,然后调用方法Hostpots,并且我使用了this.pano_id,但这似乎不起作用,因为它警告未定义。我尝试在控制台上打印this,它是TweenLite对象的类对象。 有没有办法可以使用this.pano_id?

1 个答案:

答案 0 :(得分:0)

它不起作用,因为hotspot.Hotspots在不同的上下文(TweenLite对象中)被调用。将其包装到匿名函数中并显式调用hotspot.Hotspots

var hotspot = new Hotspot(pano_id);
TweenLite.to(clear_pano[pano_num].material.materials[i], time, {
    opacity: 1,
    ease: Expo.easeOut,
    onComplete: function() {
        hotspot.Hotspots();
    }
});