Backbone - 查看共享对类的引用的对象

时间:2013-07-15 17:03:53

标签: javascript backbone.js

今天遇到了以下问题,想知道它是否已被记录或是一个已知的陷阱。实质上,实例化视图维护对类属性的引用。

Here's a fiddle.

虽然这只发生在数组中 - 但数字没有以相同的方式引用 - 也许是因为它是原始的。

以下是代码:

var Menu = Backbone.View.extend({
    _someNumber: 0,
    _items: [],

    initialize: function () {
      this._someNumber++;
      //this._items = []; // uncommenting this creates a new array, rather than the reference to the class's
    },

    addItem: function (item) {
        this._items.push(item);
    }
});

var menu1 = new Menu();
menu1.addItem({foo: 'bar'});

console.log(menu1._items.length, menu1._someNumber);
$('#result1').text('Menu #1 Item count: ' + menu1._items.length + ' - someNumber: ' + menu1._someNumber);

var menu2 = new Menu();
menu2.addItem({foo: 'bar'});

console.log(menu1._items.length, menu1._someNumber);
$('#result2').text('Menu #1 Item count: ' + menu1._items.length + ' - someNumber: ' + menu1._someNumber);

所以我想我的问题是 - 这是预期的行为吗?

0 个答案:

没有答案