javascript对象相等/身份 - 比较

时间:2011-04-28 03:06:45

标签: javascript jquery ajax comparison polling

我有这段代码

    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必须相等。

数据没有变化。

2 个答案:

答案 0 :(得分:0)

你是从一个帖子请求中得到它的,虽然对象属性可能相同,但它们在内存中是两个不同的对象并且不相等。您需要比较对象所具有的实际值,而不是对象本身。

这是一个简单的演示:http://jsfiddle.net/jwhwt/

答案 1 :(得分:0)

您需要循环遍历属性并进行比较,递归地比较其值是另一个对象的任何属性。