首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在众多模块中重新赋值变量?

在众多模块中重新赋值变量?
EN

Stack Overflow用户
提问于 2021-08-05 17:06:39
回答 1查看 25关注 0票数 0

我在main.js中有一个变量let activeNode;。它可以通过键盘输入或鼠标输入进行更改。处理每一个的函数被模块化到它们自己的文件keyboard.jsmouse.js中。activeNode被导出到这些模块中。

每当函数尝试重新赋值导入的变量activeNode时,console都会记录错误Uncaught TypeError: Assignment to constant variable.

我见过其他答案说,在main.js中也创建并导出一个函数updateVariable(var),然后在模块中调用它来重新分配activeNode,但我不希望仅仅为了重新分配一个变量就创建导出和整个函数。

有没有其他方法来完成跨模块的变量重新赋值?(而且不必将变量传递到模块函数调用中,因为鼠标输入函数调用在main.js中嵌套得很深,我不想让一个参数穿过一堆更高级别的函数。)

EN

回答 1

Stack Overflow用户

发布于 2021-08-06 01:38:16

我已经有大约一百万年没有做过“严肃的”Javascript编程了,所以我的回答会更笼统,而不是最先进的。

@Saran Surya是对的-代码示例在这里会有所帮助,我们看不到你是如何做你正在做的事情的。

如果你这样做,Uncaught TypeError: Assignment to constant variable就会发生if(x = y)当你的意思是if(x == y)提醒我,我曾经花了一个小时试图调试一个错误,结果是If(x == y) (大写i) --这个故事的寓意是,错误的原因可能比你想象的要基本得多。

另一种可能是您没有意外地将某些内容声明为const,是吗?

或者,您是否声明了变量但没有初始化它(当它被鼠标/键盘调用时)?

改变策略,只是将activeNode声明为全局变量?

或者,一种方法是使用单独的主/键盘/鼠标,简单地将activeNode公开为main类上的公共字段。

代码语言:javascript
复制
class main{
  activeNode = '';
}

class mouse{
  DoSomethingMousey(){
    main.activeNode = 'I am a mouse';
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68670826

复制
相关文章

相似问题

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