2011-04-28 82 views
2

我有了這個代碼JavaScript對象平等/身份 - 比較

update_questions: function() { 
     alert("UPDATING!!"); 
    }, 
    poll: function() { 
     var self = this; 

     $.post(
      self.o.site_root+'home/ajax_poll', 
      function(questions) { 
       if (questions != self.o.questions) { 
        self.o.questions = questions; 
        self.update_questions(); 
       } 
       self.o.pending = false; 
      }, 
      'json' 
     ); 
    }, 

爲什麼update_questions函數被調用每一次給我任何人都可以解釋一下嗎?我想,特別是在self.o.questions = questions;之後,如果不相同,返回questionsself.o.questions必須相等。

數據沒有變化。

回答

0

您可以通過屬性需要循環並加以比較,遞歸比較任何屬性的人的價值是另一個對象。

0

你從發佈請求中獲得它,雖然對象屬性可能相等,但它們是內存中的兩個不同的對象,並不相等。您需要比較對象所具有的實際值,而不是對象本身。

這裏有一個簡單的例子:http://jsfiddle.net/jwhwt/