我很難理解爲什麼這個東西不起作用。哪裏有問題?這是將值傳遞給此函數的正確方法,還有其他方法嗎?很難爲什麼這個功能在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