首页 > 解决方案 > javascript专业人士的基本问题

问题描述

我创建了这个函数,只有当 goerror 变量 = 0 时才起作用。也就是说,如果变量是 goerror = 1,它会执行 regad() 函数吗?

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

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

 player.on('adplaying', function() {
  regad();
 });
}

标签: javascript

解决方案


您在更新值时再次在函数内部重新声明 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();
});

推荐阅读