JavaScript变量被忽略

因此,我正在尝试使用JS编写数据结构可视化工具(以便可以在线托管它)。似乎我的JS忽略了我的变量(并声称某些功能不存在),我不知道为什么。非常感谢您的帮助。

var stack = new Stack();
var defaultValueCounter = 0;
function push() {
    var value = document.getElementById("add").value;
    if (value === "") {
        defaultValueCounter++;
        value = defaultValueCounter;
    }
    //console.log(stack + ", " + value)
    stack.push(value);
    addCol(value);
    stack.print();
    document.getElementById("add").value = "";
}

在该代码中,由于某种原因似乎忽略了堆栈(初始化为未定义)。我已经通过将声明移到push()函数中来测试了这个假设,并且它起作用了(尽管出于显而易见的原因,我的Stack只能包含1个元素)。我该怎么做才能解决