我不知道为什么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