首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否将全局变量传递给Javascript中的事件回调函数?

是否将全局变量传递给Javascript中的事件回调函数?
EN

Stack Overflow用户
提问于 2012-10-06 03:40:14
回答 3查看 4.2K关注 0票数 1

我假设这是一个范围问题。

代码语言:javascript
运行
复制
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!");

返回:

代码语言:javascript
运行
复制
data!
undefined

我想让它返回:

代码语言:javascript
运行
复制
data!
my data!
EN

Stack Overflow用户

发布于 2012-10-06 03:43:57

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

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

以下任一项:

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

附言:

代码语言:javascript
运行
复制
myevent.on('data', function(data, mydata) {myfunc(data,mydata)});

最好写成:

代码语言:javascript
运行
复制
myevent.on('data', myfunc);
票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12752985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档