只设置一次Module属性



我有一个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 membersetID() function

我想知道:通过这种方式,setID是我的模块的public成员,它可以被我的应用程序中的其他Module调用。我只会设置id一次,所以避免setID()的其他调用来设置必须只设置一次的值。有办法吗?

我是Module设计模式的新手,所以请原谅我有任何麻烦。

如果ID已经设置,则可以修改setID以不执行任何操作:

var setID = function(a){
    if(typeof a != 'undefined' && typeof id == 'undefined')
       id = a;
};

然后其他模块仍然可以调用它,但它什么也不做(或者您可以让它抛出错误或返回false)。

相关内容

最新更新