Вы сталкиваетесь с проблемой области видимости, если используете свой код как таковой. Вы должны объявить это вне функций, если планируете использовать их между ними (или, если вызываете, передать это как параметр).
var a = new Array();
var b = new Object();
function first() {
a.push(b);
// Alternatively, a[a.length] = b
// both methods work fine
}
function second() {
var c = a[0];
}
// code
first();
// more code
second();
// even more code