Я изучаю структуры данных / алгоритмы с помощью javascript, и я не могу обнаружить ошибку в моем стеке. Код:
//first javascript algo
console.log("program working");
function Stack() {
this.dataStore = [];
this.top = 0;
this.push = push;
this.pop = pop;
this.peak = peak;
function push(element) {
this.datastore[this.top++] = element;
}
function pop(element) {
return this.datastore[--this.top];
}
function peak() {
return this.datastore[this.top - 1];
}
}
var FirstStack = new Stack();
FirstStack.push(1);
FirstStack.push(2);
FirstStack.push(3);
console.log("Peak:" + FirstStack.peak());
console.log("Pop:" + FirstStack.pop());
console.log("Pop:" + FirstStack.pop());
Я получаю ошибку
" this.datastore[this.top++] = element;
^
TypeError: Cannot set property '0' of undefined
at Stack.push (/Users/mg8686./Desktop/javascriptalgos/algo1.js:13:32)
at Object.<anonymous> (/Users/mg8686./Desktop/javascriptalgos/algo1.js:26:12)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
Может кто-нибудь сообщить мне, что я делаю не так? Спасибо !!