类函数内部的Javascript全局变量

时间:2019-02-25 12:51:12

标签: javascript function variables global ecmascript-5

我不太习惯es5,所以我遇到了麻烦,因为我不得不使用es5。问题是当我这样做时,updateScoreboard({"name":"foo","bgColor":{"r":47.0,"b":79.0,"a":255.0,"g":79.0}})

要在记分板上创建一个新面板,我的isPlayerInScoreboard函数将返回false,因为playerName2是一个全局变量,并且未绑定到PlayerPanel函数,您可以通过调用{ {1}} 然后注销“ playerName2”,我不认为它应该是全局变量,但不知何故

编辑:当我这样做时

updateScoreboard({“ name”:“ foo”,“ bgColor”:{“ r”:47.0,“ b”:79.0,“ a”:255.0,“ g”:79.0}})             updateScoreboard({“ name”:“ bar”,“ bgColor”:{“ r”:47.0,“ b”:79.0,“ a”:255.0,“ g”:79.0}})

在我的面板数组中,所有对象的getPlayerName方法都返回最后输入的名称,因此,在这种情况下,如果我做了panel [0] .getPlayerName(),它将返回“ bar”,而应该返回“ foo”

updateScoreboard({"name":"foo","bgColor":{"r":47.0,"b":79.0,"a":255.0,"g":79.0}})

1 个答案:

答案 0 :(得分:0)

在其中使用“ this”时,应使用“ new”调用PlayerPanel。

 function updateScoreboard(plyInfo){
        if (!isPlayerInScoreboard(plyInfo.name)) {
            new PlayerPanel(plyInfo)
        }
    }