JavaScript如何在全局拿到函数作用域内的变量

以下是求斐波那契数列的一个函数,我想return出新的数组,但是似乎只能return出函数
let fibonacciArr = [1, 1]
let i = 0
function fibonacci(quantity) {
  let leng = fibonacciArr.length
  if (leng < quantity) {
    fibonacciArr.push(fibonacciArr[i] + fibonacciArr[i + 1])
    i++
  } else {
    // return console.log(fibonacciArr)
    return (function (newArr) { return console.log(newArr) }(fibonacciArr))
  }
  fibonacci(quantity)
}
fibonacci(8)

img


function test(len) {
        let fibonacciArr = [1, 1]
        let i = 0
        function fibonacci(len) {
            let leng = fibonacciArr.length
            if (leng < len) {
                fibonacciArr.push(fibonacciArr[i] + fibonacciArr[i + 1])
                i++
            } else {
                return fibonacciArr
            }
            fibonacci(len)
        }
        fibonacci(len)
        return fibonacciArr
    }
    console.log(test(8))
    return test(8)

let fibonacciArr = [1, 1]
let i = 0
function fibonacci(quantity) {
  let leng = fibonacciArr.length
  if (leng < quantity) {
    fibonacciArr.push(fibonacciArr[i] + fibonacciArr[i + 1])
    i++;
    fibonacci(quantity)
  }
    return fibonacciArr;
  
}
fibonacci(5)