簡體   English   中英

Javascript原型訪問另一個原型函數

[英]Javascript prototype accessing another prototype function

function Scroller(id){
    this.ID = id;
    this.obj = $("#"+id);
    this.currentSlide = 1;

    var self = this;
    setInterval(self.nextSlide, 1000);
}

Scroller.prototype.nextSlide = function(){
    this.slideTo(this.currentSlide+1);
}

Scroller.prototype.slideTo = function(slide){
    // slide = (slide+this.obj.children().size()-1) % this.obj.children().size()+1; 
    // $("#"+this.ID+" > *:first-child").stop().animate({"margin-left": "-"+this.obj.get(0).offsetWidth*(slide-1)}, 1000);
    // currentSlide = slide;
}

$(document).ready(function(){
    new Scroller("actielist");
});

所以這是我的Scroller的代碼,但是當我嘗試運行它時,它給了我以下錯誤:“ Uncaught TypeError:this.slideTo不是一個函數”

setInterval調用一個函數時,它使用window上下文 (或this值)來調用它(即,它在全局作用域/上下文中調用該函數)。 您需要確保nextSlide內的上下文是正確的。

嘗試:

setInterval(self.nextSlide.bind(self), 1000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM