问题标签 [javascript-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 投票
2 回答
31 浏览

javascript - 我怎样才能做到这一点,以便用户在我的功能期间的任何时候都可以键入“reset”并将它们带回我的功能的开头?

基本上我想要它,而不是输入是或否。用户将键入重置,它将返回到“级别 0”

我试过了:

0 投票
0 回答
23 浏览

javascript - 变量范围如何在javascript中的高阶函数中工作?

我将使用一个debounce函数作为示例。

然后我创建一个虚拟函数:

然后我创建了一个 debouncedDummy 函数:

然后我debouncedDummy多次调用:

我需要帮助理解的是为什么timeout变量在多个调用之间共享debouncedDummy
如果timeout被定义在范围之外debounce怎么办?
如果timeout在范围内定义了executedFunction怎么办?

0 投票
0 回答
36 浏览

javascript - ES6 模块构造函数的作用域

我偶然发现了一种我无法理解的行为。更精通 JS 的人可以快速浏览一下它。

我很抱歉发布屏幕截图而不是在这里设置一个工作示例,但我希望专家能够快速识别出原因是什么就足够了。

  • 我在 ES6 模块中有一个 JS 类
  • 我将一个函数传递给类的构造函数
  • 我将一个事件处理程序附加到一个 HTMLElement 并且在这个处理程序中我希望这个函数可以访问。

如果我不使用 ES6 模块,它是可以访问的,我已经检查过了。所以原因必须与 ES6 模块的范围有关,我怀疑影子 DOM 可能与此有关。

所以此时,第 8 行notifyController定义了函数浏览器控制台窗口的图片,功能已定义

但是当事件处理程序运行时,它是未定义的。浏览器控制台窗口的图片,未定义功能

怎么来的?

先感谢您。


解决了:

原因原来是 View 构造函数被调用了两次。非常感谢@Bergi,他认为这是一个可能的原因。

在模块文件中手动使用预期参数一次。另一次自动没有预期的参数,因为 html 包含一个自定义元素,该类被分配到该元素。

简而言之:原因是自定义元素的使用不当


我宁愿把问题留在这里,以防其他人有类似的问题

0 投票
1 回答
15 浏览

javascript - 如何将 addEventListner() 函数中的 baseencode 图像传递到外部范围

我有一个输入字段来接受图像

输入框是这样的

此输入字段在 vuejs 的模板中。我使用的 vue 版本是 3。

我在上传图片时调用了 UploadPhoto() 方法。

我正在尝试将图像编码为 base64

我已将数据中的照片初始化为空白字符串。

在 addEventListner() 函数内的 console.log(this.photo) 上显示 base46 编码值

在 addEventListner() 函数之外的 console.log(this.photo) 上,base46 编码值显示为空白

如何将 addEventListner() 函数中的 baseencode 图像传递到外部范围,即 this.photo

上传照片后,我将 this.photo 设为 null .Base64 的图像,即

0 投票
1 回答
34 浏览

javascript - 项目没有被推送到 Javascript 承诺中的数组

在以下作为 API 页面从 Nextjs 应用程序导出的函数中,该domainnames数组在 200 响应中没有返回任何内容。

但是,如果我不使用该GetDomainStatus()函数而只是将项目从response.data.resultsinto中推送domainnames,那么 JSON 响应就会被填充。

}

这是我实际上无法domainnames从承诺中访问数组的范围问题吗?