javascript专业人士的基本问题

javascript专业人士的基本问题,javascript,Javascript,我创建此函数是为了仅当goerror变量为=0时才起作用。 也就是说,如果变量是goerror=1,它是否将执行regad()函数 var goerror=0; player.on('adsrerror',function(){ var goerror=1; }); if(goerror==0){ player.on('adstart',function()){ regad(); }); player.on('adplaying',function(){ regad(); }); }在更新值时

我创建此函数是为了仅当goerror变量为=0时才起作用。 也就是说,如果变量是goerror=1,它是否将执行regad()函数

var goerror=0;
player.on('adsrerror',function(){
var goerror=1;
});
if(goerror==0){
player.on('adstart',function()){
regad();
});
player.on('adplaying',function(){
regad();
});

}
在更新值时,再次在函数内部重新声明geoerror,这不会对全局变量进行任何更改

您不应该在编写事件处理程序函数之前检查geoerror,因为它最初不会运行,相反,您可以在事件处理程序执行时检查它,检查下面的代码

var goerror = 0;
player.on('adserror', function() {
  goerror = 1;
});

player.on('adstart', function() {
    if(goerror == 0)
        regad();
});

player.on('adplaying', function() {
    if(goerror == 0)
        regad();
});

var goerror=1在本地(对函数)起作用,并且不会更改同名的全局作用域变量-基本作用域问题“var goerror=1;”必须变为“goerror=1;”