簡體   English   中英

在JavaScript中的對象內部調用對象函數

[英]Call object function inside object in javascript

我正在嘗試創建一個javascript類,並在加載時實例化它的某些對象。 該類包含一些函數和一些事件偵聽器。

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

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

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

我的目標是從事件監聽器調用類函數(在這種情況下,是在點擊監聽器中debug )。 不幸的是,當我單擊對象時,我只會看到事件監聽器警報,而看不到調試警報( 小提琴 )。

我知道這是一個基本問題。 但是我找到的所有答案都說明了將類創建為變量而不是函數。 我之所以采用這種方式,是因為我的目標是在同一頁面中創建該類的多個實例。 有沒有一種方法可以使用“變量類”實例化多個對象並從對象中調用內部函數? 提前致謝。

經典的事件處理程序中的上下文是window

最簡單的解決方案是在封閉范圍內聲明一個變量,以存儲所需的值:

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

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

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

暫無
暫無

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

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