首页 > 解决方案 > 如何在控制台中显示闭包函数的内容?#javascript

问题描述

JAVASCRIPT 中的闭包您好,我的 javascript 代码遇到了一些困难,也许您可​​以帮助解决有关闭包的问题。这是我的代码:

function seatReservation(aSeat) { 
    let secret = aSeat;
    return function (){
        return secret;
    }
};

class Reservations { 
    #aMailadress;
    #mySeatList;

    constructor(aMailadress){
        this.#aMailadress = aMailadress;
        this.#mySeatList = [];
    } 

    addSeatReservation(aSeat){
        this.#mySeatList.push(aSeat);
    }

    printReservations(){
        this.#mySeatList.forEach(seat => {
            console.log(seat);
        });
    }
};

// Test
const list = new Reservations('peter@mail.com');
list.addSeatReservation(new seatReservation('D3'));
list.addSeatReservation(new seatReservation('F6'));
list.printReservations();

控制台的输出是:[(匿名函数)] [(匿名函数)]

预期输出:D3 F6

谁能帮忙?谢谢

标签: javascriptclosures

解决方案


new seatReservation('D3')创建一个函数,该函数在调用时将返回传递secret给它的值。例如,您可以这样做:console.log(seat());. 您调用该函数,从而从闭包中检索数据。


推荐阅读