问题标签 [global-scope]

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 投票
1 回答
188 浏览

php - Laravel 5.4 中 GlobalScope 的错误

当我尝试在我的模型中使用全局范围时:

它不起作用,因为 Laravel 在某处处理双重调用函数join()。有人遇到过吗?怎么修?

0 投票
3 回答
19 浏览

javascript - boxSize 泄漏到 globalscope

控制台日志两次,但它只需要显示第一个 console.log(boxSize)

0 投票
1 回答
1568 浏览

laravel-5.5 - 在 Laravel 5.5 中根据用户角色应用全局范围

对于某些模型,如果登录用户不是超级管理员,我需要应用全局范围。在模型的boot()方法中,我尝试了这样的事情:

范围从未申请过!我在这里做错了什么?如何实现基于用户角色应用范围的目标?谢谢

0 投票
1 回答
830 浏览

php - 链式 Laravel 特征/范围

我想链接 2 个可以通过我制作的特征访问的全局范围。

当我这样称呼我的模型时,它可以工作

但这并不

编辑

出于某种原因,这段代码在 Laravel 4.2 下工作,但我切换到 5.5,现在它坏了。

编辑 2

如果我制作像这样的本地范围scopeWithInactive()scopeWithUnpublished()我可以将它们链接起来就好了。

0 投票
3 回答
72 浏览

javascript - 将 for 循环中的局部作用域变成全局作用域

我一直在寻找,但我无法得到明确的答案。(我是 javascript 的初学者,这是控制台内的测试/练习)我如何在 for 循环中创建一个本地范围,一个全局范围,然后我可以将它添加到带有对象数组的变量中。例如:我希望用户在名为“stars”的变量(提示)中设置一部电影有多少颗星(评级)。然后可以在对象/数组中的movieDb变量中调用它,其中显示“评级:”......使用变量stars,这样它就可以控制台记录用户输入的星星以及其他信息。这是允许的还是有不同的方法?

0 投票
3 回答
591 浏览

python - 为什么这个变量对非本地范围的引用不能解析?

a这是一个找到正整数和b和的最大公约数的示例a <= b。我从较小的a和减去的一一开始检查它是​​否是两个数字的除数。

然后,我收到错误消息,

UnboundLocalError: local variable 'testerNum' referenced before assignment.

使用后,在 Spyder 控制台中global testerNum成功显示答案...3

间谍的结果

但在 pythontutor.com 中,它说NameError: name 'testerNum' is not defined链接)。

pythontutor的结果

Q1:在 Spyder 中,我认为这global testerNum是一个问题,因为testerNum = a它不在全球范围内。它在 function 的范围内gcdFinder。这个描述正确吗?如果是这样,Spyder 是如何给出答案的?

Q2:在pythontutor中,说最后一个截图,pythontutor中NameError问题如何解决?

Q3:为什么 Spyder 和 pythontutor 的结果有差异,哪个是正确的?

Q4:不使用global方法更好吗?

--

更新: Spyder 问题是由于先前运行存储的值,因此它9已被定义。这就是global testerNum工作。我已经删除了 Q1 和 Q3。

0 投票
0 回答
112 浏览

python - 跨不同模块从 globals() 和 locals() 获取函数对象

问题:有没有办法使用globals()or locals()but from a different (imported) module 而不是"__main__",而不必再仔细研究结果以找到例如函数对象?

到目前为止我所尝试的:( 表现出不同程度的无知和困惑!)

module2.globals module2.globals() "module2".globals "module2".globals() globals(module2) globals().module2 globals().module2() __name__.globals __name__.globals() "__main__".globals() "__main__".globals

我最好的前景是module2.__dict__并且module2.__dict__.keys()- 但我看不出我如何过滤结果而不会有很大的偏差......

背景:(以及为什么我不寻找sys.modules()答案,谢谢)

我最初的目标是从我创建的任何新模块中“收集”一个函数对象列表,并在经过一些过滤后,使用该列表以程序方式生成菜单或 GUI。我想出了以下方法,sys.modules作为“功能农业”的第一步,所以我有一个解决方案,只是没有完全理解——因此我提出了一个冗长的问题。

我使用globals()values()以下得到了相同的结果,起初看起来很有希望:

我更喜欢第二种方法,因为作为 Python 的新手,它读起来不像是神秘的咒语。

然而,当我尝试将这个globals()基于函数的函数放入一个不同的模块(我个人的“首选”工具和技巧库)并从那里导入它时,我注意到它只是从它自己的模块中获取函数,module2

接着:

module1根据需要从和正确输出get_functions_B1

[<function get_functions_B2 at 0x000002059594DBF8>, <function get_functions_B1 at 0x0000020593593E18>]

不正确的(部分)输出module1和导入get_functions_B2

[<function get_functions_B2 at 0x000002494CC7DBF8>]

我现在明白为什么会发生这种情况(“全局”实际上意味着“模块范围”),并在这里回答了一个相关的问题,但仍然想知道我是否错过了一种优雅或明显的使用方式,globals()而不是sys.modules()请。

这是我在 StackOverflow 上的第一个问题,感谢您的耐心和帮助...

0 投票
2 回答
70 浏览

javascript - Node.js 和浏览器中对“this”的不同处理

我在本地安装了 Node.js v8.10.0。我写了一个简单的脚本来玩“这个”:

当我通过 Node.js 执行脚本时,我得到以下结果:

当我在 Chrome 中执行脚本时,我得到以下结果:

您能否向我解释一下,为什么 Node.js 在全局范围内看不到 x ?

0 投票
1 回答
189 浏览

javascript - setTimeout 中的所有函数不是在全局范围内执行吗?

我认为 setTimeout 中的所有函数都是在全局范围内执行的。然后我今天看到了这个:

即使在全局范围/窗口范围内有 x 的值;此代码控制台从 0 到 9。我在这里缺少什么。这个函数不应该在全局范围内运行吗?

为什么使用 let 而不是 var 会改变以前的事实?

0 投票
1 回答
1458 浏览

python - 机器人框架库动态导入不保持全局

一些背景

我正在使用带有 Python 的 Robot Framework 来创建一个用于测试自动化的小型框架。我有几个不同的图书馆;一对是特定于应用程序的,一个具有我希望始终可用的关键字。这个始终可用的库是我的常用库,我也需要从其他库中的函数访问它。

到目前为止,我完成此操作的方式一直是我其他库顶部的一些样板。具体来说,在我的其他库中,我有:

此代码检查当前机器人上下文是否存在公共库并获取对它的引用,如有必要,首先导入库。这意味着我在所有其他库中都引用了公共库,并且意味着每当我在机器人设置表中导入我的任何库时,我也可以访问公共库关键字。

问题是当按顺序运行多个机器人测试时,公共库似乎消失了。我在一个目录中有一些机器人脚本并运行“robot *.robot”。在每个测试中,我从公共库中运行一个关键字。我从不在设置表中导入公共库,因为它应该由其他库自动导入,如上所述。在第一个测试中,公共库存在并且其中的关键字工作正常。在以下所有测试中,我得到一个关键字未找到错误。当我打印结果时,BuiltIn().get_library_instance(all=True)我可以看到,虽然我的应用程序特定库仍在加载,但公共库不再存在。

问题

我所有的图书馆都ROBOT_LIBRARY_SCOPE = 'GLOBAL'在其中,包括公共图书馆。我的公共库是通过 BuiltIn 动态导入的,并且定义了全局范围,但是在一个命令中运行后续测试时,它似乎超出了范围。即使动态导入的库具有全局库范围,是否有理由超出范围?

本质上,我希望这个公共库在我的机器人脚本中始终可用,并让我的每个自定义库维护对公共库的引用。如果有更好的方法来完成此操作或某种方法可以使我目前正在做的工作,请告诉我!谢谢。