这两个模型定义有什么区别?

时间:2014-03-12 14:55:19

标签: backbone.js

我是backbone.js的新手,我有关于模型定义的问题。在各种教程和介绍中,我已经看到了定义模型的这三种方法:

Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return Tour;
});

另一个下一个:

**var** Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return Tour;
});

我也看过这个:

Tour = Backbone.Model.extend({

    idAttribute: 'id',

    urlRoot: '/api/tour',

});

return **new Tour()**;
});

我已经读到第一个是"全局命名空间"这在编程中对我没有任何影响。那么这三者之间的差异在哪里(特别是第一和第二)和什么时候应该使用?

1 个答案:

答案 0 :(得分:2)

1-在第一种方法中,您将创建一个名为Tour的全局变量,因此无论您在哪里Tour都会指向您的模型类。

2-在第二个中你创建了一个指向模型类并返回它的局部变量,所以每当你想要使用你的模型时,你必须实例化返回的变量,就是这样。

3-在第三种方法中,您将创建模型类,实例化它并返回实例,因此您的所有程序将共享同一个实例!!

正确的方法是第二种方法,因为在第一种方法中,不建议在javascript中使用全局变量,而第三种方法不起作用。