this.c = this.b导致this.b在this.c上执行操作时被更改

时间:2015-01-10 16:02:10

标签: javascript object this

有人可以解释一下为什么在以下示例中,this.b被更改,而更新是在this.c上进行的?我该怎么做才能防止这种行为?

var a = {
    initialize: function() {
        this.b = [];
        this.c = this.b;
        this.bindEvents();
    },

    bindEvents: function() {
        $('body').on('click', '.js-update', a.update.bind(this));
        $('body').on('click', '.js-reset', a.reset.bind(this));
    },

    update: function() {
        this.c.push("d");
        console.log(this.b);
    },

    reset: function() {
        this.c = this.b;
        console.log(this.c);
    }
};

a.initialize();

http://jsfiddle.net/kygtxbrn/1/

0 个答案:

没有答案