Javascript回调函数无法访问父函数变量

发布时间:2020-07-07 13:51

我对Java语言非常陌生,我正在尝试了解项目工作的回调,以获取文本框输入作为地址,并希望在按钮单击上完成我的核心工作。在html端,我有N个文本框,对于文本框中的每个地址,相同的功能必须起作用

window.addEventListener('load', function(){

var variable1;
var variable2;

Buttons = document.getElementsByClassName('Do');
  for (var i = 0; i < Buttons .length; i++) {
    Buttons [i].addEventListener('click',Do);
  }

  function Do(event){
    let Id = event.target.parentNode.parentNode.id;
    let Tag = document.getElementById(Id);
    let address = Tag.children[1];
    callbackfn.bind(this);
    backendlibraryfuntion(callbackfn);
  }
  function callbackfn(x,y){
    console.log(variable1); //working perfectly
    console.log(variable2); //working perfectly
    console.log(address); // throwing undefined error 
  }
  
});

在回调中访问地址值时遇到问题,我的目标是获取N个地址并基于address初始化N个并行实例。有人可以帮我吗?

回答1

在变量1和变量2附近定义地址变量,这样您就不会遇到此特定错误。

$data = file_get_contents('ssh2.sftp://'.SFTP_USER.':'.SFTP_PASSWORD.'@'.SFTP_HOST.':'.SFTP_PORT.'/'.SFTP_FILE);  
$lines = preg_split("/\\r\\n|\\r|\\n/",$data);
var_dump(explode('\t', $lines[0]));