仅设置一次Module属性

时间:2013-07-17 18:54:03

标签: javascript oop design-patterns 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 member设置为setID() function

我想知道:通过这种方式,setID是我的模块的public成员,并且我的应用程序中的每个其他Module都可以调用它。我只设置id一次,因此请避免设置setID()的其他调用是必须仅设置一次的值。有办法吗?

我是Module 设计模式的新手,所以请原谅我的任何一个nubbishness。

1 个答案:

答案 0 :(得分:1)

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

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

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