0

我很抱歉,如果这是重复的,但我找不到我正在寻找的答案,尽管我的问题似乎很容易。

这就是我所拥有的:

function myMain (myParam) {

    var myObj = {

        myVal1 : 'demo',
        myFunc : function (myParam) {
            console.log (myParam);
        }
    };

    runDemo(myObj);

}

我的问题是我console.log想写myParammyMain但它是undefined- 为什么?

我如何调用myMain('works')以便控制台写入works

仅供参考:runDemo也可以用这个单一的 Object 和 myFunc 作为对象值之一来调用 - 没有办法解决这个问题。我很感激任何帮助,谢谢。

4

1 回答 1

1

使 myFunc 不采用这样的参数:

function myMain (myParam) {

    var myObj = {

        myVal1 : 'demo',
        myFunc : function () {
            console.log (myParam);
        }
    };

    runDemo(myObj);

}

在这种情况下myFunc保留变量的值myParam。这称为闭包

于 2013-09-30T13:10:10.097 回答