是否可以在backbone.js视图中使用全局变量?
是否可以在backbone.js视图中使用全局变量 例如:是否可以在backbone.js视图中使用全局变量?,backbone.js,Backbone.js,是否可以在backbone.js视图中使用全局变量 例如: var TodoView = Backbone.View.extend({ counter: null ; // is this possible ? initialize: function(){ this.render(); }, render: function(){ } }); 您可以轻松地将变量存储在至少3个不同的范围中: 每个视图实例唯一的常规实例变量 这些可以作为属性存储在视图的thi
var TodoView = Backbone.View.extend({
counter: null ; // is this possible ?
initialize: function(){
this.render();
},
render: function(){
}
});
您可以轻松地将变量存储在至少3个不同的范围中:
- 每个视图实例唯一的常规实例变量
- 这些可以作为属性存储在视图的
对象上this
- 示例:
this.selectedItem=this.$el.find('.selected')代码>
- 这些可以作为属性存储在视图的
- 视图的所有实例共享的类级变量
- 这些可以存储在视图类的构造函数中
- 示例:
TodoView.counter=0代码>(将其放在整个
调用之后).extend
- 真正的全局变量(是的,这些是不好的,但是既然你问了)
- 您可以通过省略
或只显式分配给var
对象来泄漏这些窗口
- 示例:
window.appLaunchTime=new Date()
- 您可以通过省略
的所有实例中都可以使用的私有变量感兴趣,那么您可以执行以下操作
(function () {
var counter = 0; //This can be used now as a private variable inside TodoView
window.TodoView = Backbone.View.extend({
initialize: function(){
this.render();
counter += 1;
},
render: function(){
}
});
})();
试着把它放在静态范围内
var TodoView = Backbone.View.extend({
TodoView.counter++//reference it this way
},{
counter: null ;})
可能有点像一个全局变量,它将是一个实例变量,一个特定的视图实例,而不是视图的所有实例的全局变量。除了@asawyer提到的,这是无效的JavaScript语法,它需要是counter:null,
Thany you guy,是的,我现在看到了(;是问题之一),我是OOP新手,所以我不知道所有的术语。非常感谢你(对不起,我的英语和javascript知识我都不懂。)window.xxx在backbone.js中不工作。有什么想法吗??(xxx是一个变量名)