【发布时间】:2014-09-23 21:35:02
【问题描述】:
如何在 nightwatch.js 中创建一个全局可访问的变量?我正在使用一个变量来存储一个自定义的 url(取决于我们的在线产品中加载了哪个商店),但我需要它可以跨多个 javascript 函数访问。它的值似乎在每个函数结束后都会重置,尽管它是在文件头部的函数之外声明的。
【问题讨论】:
-
听起来你需要在 Javascript 中阅读 variable scope。
-
对我来说,对全局变量的需求预示着糟糕的软件设计。我的经验是,通常可以通过适当的封装来消除全局变量。例如,您说您需要在多个函数中使用相同的变量。有什么东西阻止您将这些函数放在一个对象中,并在该对象上使用属性(状态)而不是全局变量?常量是例外,它们通常作为全局变量非常好。看看你的框架是否不能帮助你进行封装,例如 AngularJS 有一个依赖注入系统(我不知道 nightwatch)。
-
@harbichidian 我并不需要一些令人耳目一新的东西,但是您熟悉使用 nightwatch 进行端到端测试吗?它表现出一些与典型 javascript 功能不匹配的非典型行为,在这种情况下涉及变量范围。
-
@tmacarthur 我很抱歉,那么。我可以建议您提及您尝试过的解决方案吗?这通常有助于获得有用的答案。
-
@EmilLundberg 用于配置全局变量没问题。