Is my function in the correct scope? What is the problem with it? [closed]

Link to error

So I am currently working on the Tic Tac Toe game of the odin project and having problems. I want to set up a function running the game itself and to do that I created a function called Game. In it I have a function I want to discuss. This.currentPlayer. Is the while loop under it correctly scoped because when I try to run the code myself I get a type error saying that cheese.markPosition is not a function? Is my function correctly scoped? How do I go about accessing the variables of a function inside another function like I have already done in the Player function?

function createGameBoard(){
    let spotOne = []
    let spotTwo = []
    let spotThree = []
    let spotFour = []
    let spotFive = []
    let spotSix = []
    let spotSeven = []
    let spotEight = []
    let spotNine = []
    let spots = [spotOne,spotTwo,spotThree,spotFour,spotFive,spotSix,spotSeven,spotEight,spotNine]
    return {spots,spotOne,spotTwo,spotThree,spotFour,spotFive,spotSix,spotSeven,spotEight,spotNine}
}

function Player(name, marker){
    this.name = name;
    this.marker = marker;
    this.Playing = false
    this.sayMarker = function(){
        console.log(`my marker is ${this.marker}`);
    };
    this.markPosition = function(gameBoard,spot){
        
        switch(spot){
            case 1:
                if((gameBoard.spotOne.length) == 0){
                    gameBoard.spotOne.push(this.marker)
                    
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotOne.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 2:
                if((gameBoard.spotTwo.length) == 0){
                    gameBoard.spotTwo.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotTwo.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 3:
                if((gameBoard.spotThree.length) == 0){
                    gameBoard.spotThree.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotThree.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 4:
                if((gameBoard.spotFour.length) == 0){
                    gameBoard.spotFour.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotFour.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 5:
                if((gameBoard.spotFive.length) == 0){
                    gameBoard.spotFive.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotFive.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 6:
                if((gameBoard.spotSix.length) == 0){
                    gameBoard.spotSix.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotSix.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 7:
                if((gameBoard.spotSeven.length) == 0){
                    gameBoard.spotSeven.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotSeven.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 8:
                if((gameBoard.spotEight.length) == 0){
                    gameBoard.spotEight.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotEight.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
            case 9:
                if((gameBoard.spotNine.length) == 0){
                    gameBoard.spotNine.push(this.marker)
                    console.log(`marking position #${spot} with ${this.marker}`)
                }
                else if((gameBoard.spotNine.length > 0)){
                    console.log(`Cannot mark the same spot twice in Tic Tac Toe`)
                }
                console.log(gameBoard.spots)
                break;
        }

    }
}
function Game(Gameboard, ...Players){
    this.players = Players
    this.currentPlays = 0
    this.currentPlayer = function(){
        randomNumber = (`${Math.floor(Math.random() * 2)}`)
        return Players[randomNumber].name
    }
    while(this.currentPlays < 10){
        ++this.currentPlays
        cheese = this.currentPlayer()
        Play = prompt(`Where shall ${cheese} Play?`)
        cheese.markPosition(Gameboard,Play)
    }
    this.Game = Gameboard
   
}

const FelaF = new Player("FelaF","X")
const Jimmy = new Player("Jimmy", "O")
const James = new Player("James", "X")
Gameboard1 = createGameBoard()
FelaF.markPosition(Gameboard1, 7)
console.log(FelaF.name)
Jimmy.markPosition(Gameboard1, 7)
const G1 = new Game(Gameboard1, Jimmy, FelaF)
console.log(G1.currentPlayer())

Instead of a constructor function I tried to convert the Game function into a factory function with no avail. Please help?