1 var serial_maker = function() {
2 //返回一个用来产生唯一字符串的对象。
3 //唯一字符串由两部分组成:前缀+序列号。
4 //该对象包含一个设置前缀的方法,一个设置序列号的方法,和一个产生唯一字符串的 gensym 方法。
5 var prefix = '';
6 var seq = 0;
7 return {
8 set_prefix: function(p) {
9 prefix = String(p);
10 },
11 set_seq: function(s) {
12 seq = s;
13 },
14 gensym: function() {
15 var result = prefix + seq;
16 seq += 1;
17 return result;
18 }
19 };
20 };
21
22 var seqer = serial_maker();
23 seqer.set_prefix('Q');
24 seqer.set_seq(1000);
25 var unique = seqer.gensym(); // Q1000
26 console.log(unique);