如何通过属性引用javascript对象's onclick方法

How can I reference a javascript object through a property's onclick method?

本文关键字:onclick 方法 对象 何通过 属性 引用 javascript      更新时间:2023-09-26

我正在创建一个Javascript对象,如下所示:

function pager(elementId) {
    this.totalPages = 5;
    this.currentPage = 1;
    var nextPageImage = document.createElement("img");
    nextPageImage.src = "img/next.png";
    nextPageImage.onclick = function(){
        if (this.currentPage+1 <= this.totalPages)
        {
            this.currentPage +=1;
        }
    }
    document.getElementById(elementId).appendChild(nextPageImage);
}

我通过在页面上传递div的id来创建对象的实例:

myPager = new pager('pagerDiv');

问题是onclick函数中的"this"指的是图像本身,而不是寻呼机对象。我可以使用"myPager"引用寻呼机对象,但这不是很实用。

如何从image onclick函数中引用对象?

创建一个表示"this"的局部变量,然后使用它:

function pager(elementId) {
    this.totalPages = 5;
    this.currentPage = 1;
    var th = this;
    var nextPageImage = document.createElement("img");
    nextPageImage.src = "img/next.png";
    nextPageImage.onclick = function(){
        if (th.currentPage+1 <= th.totalPages)
        {
            th.currentPage +=1;
        }
    }
    document.getElementById(elementId).appendChild(nextPageImage);
}