gpt4 book ai didi

javascript - 将全局变量传递给 Javascript 中的事件回调函数?

转载 作者:行者123 更新时间:2023-11-30 07:09:53 25 4
gpt4 key购买 nike

在下面的代码中,我试图将 mydata 传递给回调。这是我遇到的一个更大问题的示例问题。我假设这是一个范围问题。我的代码有什么问题和/或我应该怎么做?

var EventEmitter = require('events').EventEmitter;
var myevent = new EventEmitter();
var mydata = 'my data!';

function myfunc (data, mydata) {
console.log(data);
console.log(mydata);
};

myevent.on('data', function(data, mydata) {myfunc(data,mydata)});

myevent.emit('data', "data!");

返回:

data!
undefined

我希望它返回:

data!
my data!

最佳答案

回调参数列表中的参数mydata隐藏了同名全局变量。

因为您没有在该位置传递任何参数,所以它的值为 undefined

或者:

  1. 更改参数的名称,或者
  2. 删除参数,或者
  3. 传递所需的值,例如myevent.emit('data', "data!", mydata);

附:

myevent.on('data', function(data, mydata) {myfunc(data,mydata)});

最好写成:

myevent.on('data', myfunc);

关于javascript - 将全局变量传递给 Javascript 中的事件回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com