我很难理解为什么这个东西不起作用。哪里有问题?这是将值传递给此函数的正确方法,还有其他方法吗?很难为什么这个功能在javascript中不起作用
seqer.set_prefix ='Q';
seqer.set_seq = 1000;
是否possibleto做到这样:
sequer.set_prefix('Q');
var serial_maker = function() {
var prefix = '';
var seq = 0;
return {
set_prefix: function (p) {
prefix = p;
},
set_seq: function (s) {
seq = s;
},
gensym: function() {
var result = prefix + seq;
seq += 1;
return result;
}
};
}();
var seqer = serial_maker();
seqer.set_prefix = 'Q'; // is this the right way to pass in values to this function, are there other ways? is it possible to write like this sequer.set_prefix('Q);
seqer.set_seq = 1000; // same here?
seqer.gensym()
;
感谢您的解释,但现在正在测试。我注意到你不能改变前缀的值并在函数外部设置? THis:var seqer = serial_maker(); seqer.set_prefix ='Q'; seqer.set_seq = 1000; seqer.gensym();实际上永远不会工作因为这些变量是私有的吗?.... - YoniGeek – YoniGeek
@YoniGeek:不,你可以设置它们。 JavaScript实际上没有任何'私人'成员的概念。如果你可以访问它们,那么你可以替换它们 - 这是非常动态的。所以是的,执行'seqer.set_prefix ='Q';''**将真正**替换整个函数'set_prefix'和值'Q'。 – voithos