【问题标题】:Javascript: access parental function's variablesJavascript:访问父函数的变量
【发布时间】:2012-04-28 19:34:18
【问题描述】:

我有以下代码(简化):

function(req, res) {
  var path = 'login';

  req.on('end', function(data) {
    var post = parsevars(rawpost, '&');
    if (typeof post.username !== 'undefined' && typeof post.password !== 'undefined') {
      if (handlelogin(post.username, post.password))
        path = req.url;
    }
  });
}

粗体部分是没有按预期工作的部分:/
任何关于如何摆脱这种范围限制的意见都会很棒。

【问题讨论】:

  • 预期的行为是什么? leak path 在其他一些闭包中你是否希望它在end 触发时发生变化?否则我看不出它对声明它的外部函数有什么影响。

标签: javascript node.js scope


【解决方案1】:

它确实有效,它刚刚在事件处理程序之前执行之后的代码。

【讨论】:

  • 欢迎来到异步世界:)
【解决方案2】:

奇怪,因为req 在闭包的外部范围内,所以应该工作。

但是我想你会发现当前的req 在回调中也可以作为this 使用,即:

path = this.url;

【讨论】:

  • 就像您的编辑说的那样,这应该有效,我非常怀疑更改参考名称会产生效果。事实上,如果确实如此,我们应该更加担心。最可能的原因:OP 的错误,尽管信息为零,但可以做的事情并不多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
相关资源
最近更新 更多