我有Module
这样:
var Module = (function() {
var id;
var setID = function(a){
if(a)
id = a;
else
id = undefined;
};
var getID = function(){
return id;
};
// Return the object that is assigned to Module
return {
setID: setID,
getID: getID
};
}());
我将id
member
设置为setID()
function
。
我想知道:通过这种方式,setID
是我的模块的public
成员,并且我的应用程序中的每个其他Module
都可以调用它。我只设置id
一次,因此请避免设置setID()
的其他调用是必须仅设置一次的值。有办法吗?
我是Module
设计模式的新手,所以请原谅我的任何一个nubbishness。
答案 0 :(得分:1)
如果已设置ID,您可以修改setID
不执行任何操作:
var setID = function(a){
if(typeof a != 'undefined' && typeof id == 'undefined')
id = a;
};
然后其他模块仍然可以调用它,但它什么也不做(或者你可以让它抛出错误或者返回false
)。