有没有在dojo中定义真正的私有变量的好方法?
在 dojo 1.7/1.8 中,我找到了两种定义私有变量的方法,但它们都是静态私有的(由类的所有实例共享)
1.使用匿名立即函数:
define([
'dojo/_base/declare'], function(declare) {
'use strict';
return declare('test.Class2', null, (function(){
var a = 1;
return {
constructor: function(){
console.log('constructor');
},
geta: function(){
return a;
},
seta: function(v){
a = v;
}
};
})());
});
2.在模块定义中定义私有变量。
define([
'dojo/_base/declare'], function(declare) {
'use strict';
var a = 1;
return declare('test.Class1', null, {
constructor: function(){
console.log('constructor');
},
geta: function(){
return a;
},
seta: function(v){
a = v;
}
});
});