JS变量在传递函数

时间:2018-05-01 11:35:28

标签: javascript function scope

我有一个函数,它接受另一个函数及其变量并执行该函数,我的问题是我传递的变量变得未定义,

function A(type = 'default_type', B = function(){}) {
  B();
}

function Parent() {
  var data = "hello"
  
  A('my_type', data => {
    console.log(data);
  });
}
Parent();

当我这样做时它会起作用:

function A(type = 'default_type', data,B = function(){}) {
  B(data);
}

function Parent() {
  var data = "hello"
  
  A('my_type', data => {
    console.log(data);
  });
}
Parent();

但我不想这样做,因为我可能需要在未来中传递多个变量

1 个答案:

答案 0 :(得分:2)

您使用data两次,将您对A()的调用中的函数声明更改为其他名称,以便您可以访问“Hello”数据。

function A(type = 'default_type', B = function(){}) {
  B();
}

function Parent() {
  var data = "hello"
  
  A('my_type', d => {
    console.log(data);
  });
}
Parent();