TIM*_*MEX 81 javascript oop backbone.js
var Gallery = Backbone.Controller.extend({
_index: null,
_photos: null,
_album :null,
_subalbums:null,
_subphotos:null,
_data:null,
_photosview:null,
_currentsub:null,
routes: {
"": "index",
"subalbum/:id": "subindex",
"subalbum/:id/" : "directphoto",
"subalbum/:id/:num" : "hashphoto"
},
initialize: function(options) {
var ws = this;
if (this._index === null){
$.ajax({
url: 'data/album1.json',
dataType: 'json',
data: {},
success: function(data) {
ws._data = data;
ws._photos =
new PhotoCollection(data);
ws._index =
new IndexView({model: ws._photos});
Backbone.history.loadUrl();
}
});
return this;
}
return this;
},
//Handle rendering the initial view for the
//application
index: function() {
this._index.render();
},
Run Code Online (Sandbox Code Playgroud)
我正在这里阅读backbone.js的教程:http://addyosmani.com/blog/building-spas-jquerys-best-friends/
什么是下划线?(_index,_photos,_album)为什么要使用它们?
DrS*_*ove 152
它意味着私人领域或私人方法.仅供内部使用的方法.
不应该在课外调用它们.
专用字段包含供内部使用的数据.
不应该从课堂外(直接)读取或写入它们.
非常重要的是要注意,只是向变量添加下划线并不会使其成为私有,它只是一个命名约定.
oli*_*oli 21
据我所知,它通常用于表示私有变量(但实际上并不提供任何隐私,只是一种约定).
这里简要讨论,但建议他们反对:http: //javascript.crockford.com/code.html
当使用时_varname
它只是变量名称的一部分,并且没有javascript含义.开发人员使用它来表示变量的含义或范围.在这种情况下,看起来它告诉开发人员这个变量应该是本地变量或私有变量.
需要注意的一些事项,在这个特定的例子中使用_.varname
将表示带有underscore.js库的变量或函数.也可以_varname
用来表示一个包含下划线对象的变量,类似于我们的办公室,我们$varname
用来表示包含Jquery对象的变量.