我不知道爲什麼console.log(Set.current_index)
顯示0
而不是3
。返回JavaScript中的私有變量
var Set = (function() {
var set = [];
var index = 0;
function contains(set, e) {
for (var i = 0; i < set.length; i++) {
if (set[i] === e) {
return true;
}
}
return false;
}
var add = function(e) {
if (!contains(set, e)) {
set[index++] = e;
}
}
var show = function() {
for (var i = 0; i < set.length; i++) {
console.log(set[i]);
}
}
return {
add: add,
show: show,
current_index: index
};
})();
Set.add(20);
Set.add(30);
Set.add(40);
Set.show();
console.log(Set.current_index);
或者只是不要使用私有'index'變量,而是'add'方法中的公共屬性 – Bergi
@Bergi我懷疑私有封裝對於此函數的設計很重要。 – Alnitak
是的,可能的。 OP需要決定他想要什麼 – Bergi