2015-10-14 34 views
0

我想問一些事情,因爲我很困惑。我有這樣的對象:JavaScript通用對象投擲不良值

 var BonusesObject = { 
      priceTotal: 0, 
      bonusCheckboxClick: function(){ 
       var price = 5; 
       this.priceTotal = price; 
       console.log("works, " + this.priceTotal); 
      }, 
      getPrice: function(){ 
       return this.priceTotal; 
      }, 
      init: function(){ 
       $('input:checkbox').on('click', this.bonusCheckboxClick); 
      } 
     }; 

     BonusesObject.init(); 
//now when I will fire on click event and BonusesObject.getPrice 
it will give me 0 instead of 5. 

,現在當我打電話BonusesObject.getPrice它會給我0,因爲它應該。現在,當我手動調用BonusesObject.bonusCheckboxClick和BonusesObject.getPrice時,它會給ma 5,因爲它應該。但當函數bonusCheckboxClick將通過on('click',this.bonusCheckboxClick)調用它會拋出控制檯corret值5 BUT然後當我將調用BonusesObject.getPrice它仍然給我0.

我想詢問一些事情,因爲我很困惑。我有這個對象: 我錯過了什麼嗎?當點擊事件觸發對象功能時,它不起作用。

有人可以解釋我嗎?我會欣賞這一點。

+0

可能是因爲'叫時手動VS this'指的是不同的東西'onClick' - 可以綁定點擊:this.bonusCheckboxClick.bind(this)' – tymeJV

回答