我是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()**;
});
我已经读到第一个是"全局命名空间"这在编程中对我没有任何影响。那么这三者之间的差异在哪里(特别是第一和第二)和什么时候应该使用?
答案 0 :(得分:2)
1-在第一种方法中,您将创建一个名为Tour
的全局变量,因此无论您在哪里Tour
都会指向您的模型类。
2-在第二个中你创建了一个指向模型类并返回它的局部变量,所以每当你想要使用你的模型时,你必须实例化返回的变量,就是这样。
3-在第三种方法中,您将创建模型类,实例化它并返回实例,因此您的所有程序将共享同一个实例!!
正确的方法是第二种方法,因为在第一种方法中,不建议在javascript中使用全局变量,而第三种方法不起作用。