簡體   English   中英

為什么這個 IIFE 返回未定義的錯誤?

[英]Why is this IIFE returning error undefined?

為什么會返回:Uncaught ReferenceError: winConditions is not defined?

我在 function 中返回 winConditions,然后運行 function,然后運行 console.log(winConditions),為什么它不起作用?

const gameBoard = (() => {
    
    

    const board = [null, null, null, null, null, null, null, null, null]

    let applyWinConditions = () => {  
        const winConditions = [[board[0], board[1], board[2]], [board[3], board[4], board[5]],
        [board[6], board[7], board[8]], [board[0], board[3], board[6]],
        [board[1], board[4], board[7]], [board[2], board[5], board[8]],
        [board[0], board[4], board[8]], [board[2], board[4], board[6]]];
        console.log("e")
        return {
            winConditions
        }
    };

    applyWinConditions();

    console.log(winConditions)

    return {
        applyWinConditions: applyWinConditions,
    }

})();

看來您正在嘗試記錄一個超出 scope 的變量。

winConditions 是在 applyWinConditions 內部定義的,因此在外部不可用,以便 console.log 可以看到它。

嘗試這樣的事情:

console.log("winConditions", applyWinConditions());

您應該看到 function 的返回值,其中 winConditions 具有您期望的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM