问题标签 [scoping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1698 浏览

java - 在 Java 中模拟动态范围?

我在java中的动态范围内找到了这段代码。但这让我感到困惑。

java中动态作用域的模拟

有人可以告诉我这是否是您进行动态范围界定的方式?

0 投票
2 回答
323 浏览

javascript - Javascript变量范围问题

我有一个简单的范围界定问题让我感到困惑。

这是代码的更简单版本,但采用相同的原理。

selector_1 myVAR问题是,如果用户每次单击都会成功填充,但是,第二个目标处理程序将始终返回myVAR未定义。

我假设这是一个编程 101 类型的东西,但是我还没有找到一个简单的答案。

谢谢你看看这个!批评公开赞赏。

0 投票
2 回答
441 浏览

vb.net - vba 语言中变量作用域的类型

我试图理解 VBA 范围类型,在 VBA 中不可能做到这一点,但在其他语言(java、scala 等)中是可能的:

你能给我一些关于这种有限范围的信息吗?它是动态的或词汇的,我不太明白其中的区别:/

0 投票
1 回答
71 浏览

sql - 子句范围

我正在为一家拥有 SQL Server 2008 的公司做一些工作。他们的一个存储过程引用(或似乎引用)一个不存在的列,但没有错误。

查询具有以下结构:

** BAZ 不包含名为 [datecreated] 的列,但 FOO 包含。** 如果我更改查询以限定列名,如下所示,会出现错误:

如果这是设计行为,有人可以指点我相关的文档吗?谢谢

0 投票
6 回答
435 浏览

c++ - c ++:访问包含想要访问的类的类的成员

除了使用“周围类”的引用之外,在 C++ 中是否可以修改“包围”类 B(在“上”范围内)的类 A 的成员?

代码在这里: http: //pastebin.com/iEEu9iZG

目标是GFullScreen使用与全屏变量相同的值来修改变量。我知道我可以传递GFullScreen整个 Game 类的指针或引用。还有其他方法可以访问它吗?哪个更有效率?

0 投票
3 回答
235 浏览

javascript - Javascript:z = z || [] 在不使用 VAR 时抛出错误 - 为什么?

出于求知欲,为什么 javascript 接受

初始化 z(如 z 最初定义的那样)

但没有 var,它会引发错误(在全局空间中)

(如果 z 以前未定义)

在全局空间中,您不需要使用 VAR,尽管我知道这可能是不好的做法。

在你说这是重复的问题之前

var 关键字的用途是什么以及何时使用它(或省略它)?

请注意“如果您在全局范围内,则没有区别”的声明。

鉴于我的工作示例,显然这不是 100% 正确的。

这是一个怪癖还是有合理的逻辑?


添加我所学的答案摘要:

感谢 Tim(见下文),我误解的关键是没有意识到这一点(javascript 基础)

变量 z; 如果 z 已经存在,则什么都不做

如果您错误地假设“var z”总是初始化,这就是这个表达式似乎有两种方式的方式。

从左边开始,“var z”只是确保 z 已定义,但实际上不会影响任何现有值(如果它已经存在)。然后在右边,如果 z 已经存在,则使用它,如果不存在,则该变量刚刚声明(但为空),因此不会使用但不会抛出错误。

这是一篇关于 Javascript 中这种范围界定和提升问题的优秀文章:http: //www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting

非常感谢 minitech 和其他所有做出贡献的人!

0 投票
2 回答
12059 浏览

mongodb - 我应该什么时候打开和关闭 MongoDB 连接?

一般来说,我对 MongoDB 和 NoSQL 很陌生,我刚刚开始使用 MongoDB / Norm / ASP.NET MVC 3 构建一个站点。

我想知道我应该如何确定与我的 Mongo 数据库的连接范围。

现在我有一个 Basecontroller 实例化 MongoSession 和 onActionExecuted 我处理它,所以我所有的派生控制器都可以访问我的 MongoSession。MongoSession 类在其构造函数中打开一个连接并将其释放到 Dispose() 上,这是它目前的工作方式。

我有点担心如果我还在控制器中做其他事情,它可能会保持连接打开太久。

这种方法是否足以避免打开太多连接的风险,或者我应该做一些更像下面的示例方法的事情?

另一个后续问题是:

是否通过 Norm “昂贵”的操作打开和关闭 MongoDB 连接?

0 投票
2 回答
171 浏览

ruby - 跨类的 ruby​​ 变量作用域

鲁努比在这里。我有一个Login使用net/IMAP库登录到 gmail 的类。发生的事情是我创建了该类的一个新实例,例如:

然后,我正在研究其他将使用邮箱做一些“东西”的课程。问题是@imap我在 Login 中定义的变量似乎已经消失了(由于我假设的范围)。

这是@imap在 Login 类中声明的方式: @imap = Net::IMAP.new('imap.gmail.com',993,true,nil,false)

所以这:

...返回错误。这是我在玩这个时遇到的两个错误。第一个是我使用imap的时候,第二个是我尝试的时候@imap

处理这种情况的最佳做法是什么?是在创建 Net::IMAP 的新实例的同一类中定义我的方法的唯一解决方案吗?声明@imap为全局变量$imap是一种不好的做法吗?如此困惑,我敢打赌答案也非常简单明了,但我只是没有看到。谢谢!

0 投票
1 回答
1965 浏览

pseudocode - 本练习中的静态和动态范围界定有什么区别?

我在处理静态范围和动态范围时感到困惑,对于这个伪代码,我必须找到两者。对于两者,我认为它应该打印出来: 9 4 2 3 但是,我并不完全确定。任何帮助将不胜感激,谢谢。

0 投票
3 回答
1971 浏览

events - 如何从 Node.js 中的嵌套函数内部向 eventListener 发出(javascript 范围问题)

我在下面编写代码,一次解析一个站点 API,然后告诉事件队列它已准备好解析下一个对象。我遇到了一些问题,因为我还是 javascript 范围的新手,并且想从 SiteParser 发出或调用 emitForNext 函数。我似乎无法在错误回调中将 emitForNext 纳入范围。