1

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

我想知道:这样,setID它是public我的模块的成员,它可以被Module我的应用程序中的每个其他人调用。我只会设置id一次,因此避免其他设置调用setID()是必须设置一次的值。有办法吗?

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

4

1 回答 1

1

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

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

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

于 2013-07-17T18:59:53.023 回答