При создании интерфейса для стека в JavaScript - с использованием функционального стиля в противоположность прототипному или псевдоклассическому стилю, должны ли указанные ниже переменные «storage» и «count» иметь значения someInstance.storage и someInstance.count, соответственно, чтобы они могли бытьдоступ к экземпляру этого стека позже?
Поскольку переменные объявлены такими, какие они есть сейчас, после того, как мы создадим и создадим экземпляр стека, выполнив функцию, мы потеряем доступ к просмотру количества (размера) и хранилища (свойств в стеке).
Как лучше всего объявлять свойства (не методы), к которым нам нужно обращаться позже, используя шаблон создания функции?
Спасибо!
var Stack = function(){
var someInstance = {};
var storage = {};
var count = 0;
someInstance.push = function(value){
storage[count++] = value;
};
someInstance.pop = function(){
if(count){
var popped = storage[--count];
}
delete storage[count];
return popped;
};
someInstance.size = function(){
return count;
};
return someInstance;
};
var stack = Stack();